遇到这样一个问题:添加互评信息,断点调试,跳转到BLL层后就直接跳到SqlHelper中弹出错误,说:未将对象设置引用到实例等。还请人帮忙调试代码,调试半天发现抽象工厂并没成功完成反射,奇怪的是:将出现问题的方法中换用反射其他的接口没有问题,后来将有问题的接口和DAL层类都重写了,问题好像解决了。所以添加互评就这么实现了,结果实现查询操作的时候问题重现了,我逐步调试,发现这样一个问题,调试到抽象工厂类,会发现这个问题:ServerVersion 引发了“System.InvalidOperationException”类型的异常

如果您跟我一样使用SqlHelper了,你可以这样试着解决下问题:看一下你SqlHelper类中的方法是否正常使用了Try…Catch…,我的这个问题就是因为SqlHelper中Try…Catch…使用不正确,打开的数据库连接并没正常关闭。

出现问题的带参数sql查询语句或存储过程

 #region 执行带参数的查询SQL语句或存储过程
/// <summary>
/// 执行带参数的查询SQL语句或存储过程
/// </summary>
/// <param name="cmdText">查询SQL语句或存储过程</param>
/// <param name="paras">参数集合</param>
/// <param name="ct">命令类型</param>
public DataTable ExecuteQuery(string cmdText, SqlParameter[] paras, CommandType ct)
{
try
{
//定义并实例化DataTable表
DataTable datResult = new DataTable();
//实例化SqlCommand
sqlCmd = new SqlCommand(cmdText, GetConn());
//传来的SqlCommand类型:存储过程、sql语句等
sqlCmd.CommandType = ct;
//添加参数
sqlCmd.Parameters.AddRange(paras);
using (sdr = sqlCmd.ExecuteReader(CommandBehavior.CloseConnection))
{
datResult.Load(sdr);
}
//返回数据表
return datResult;
}
catch
{
//没有数据返回空值
return null;
}
finally
{
//关闭记录集
sdr.Close();
//关闭数据库
sqlConn.Close();
}
}
#endregion

修改后的sql查询语句或存储过程

#region 执行带参数的查询SQL语句或存储过程
/// <summary>
/// 执行带参数的查询SQL语句或存储过程
/// </summary>
/// <param name="cmdText">查询SQL语句或存储过程</param>
/// <param name="paras">参数集合</param>
/// <param name="ct">命令类型</param>
public DataTable ExecuteQuery(string cmdText, SqlParameter[] paras, CommandType ct)
{
//实例化一个Datatable对象
DataTable dt = new DataTable(); //创建一个连接
sqlCmd = new SqlCommand(cmdText, GetConn()); //指定命令类型
sqlCmd.CommandType = ct; //给该命令传入参数
sqlCmd.Parameters.AddRange(paras); //将查询出来的记录放入dt中
using (sdr = sqlCmd.ExecuteReader(CommandBehavior.CloseConnection))
{
//将SqlDataReader中的记录放入dt中
dt.Load(sdr); //关闭阅读器
sdr.Close();
} //关闭数据库连接
Close(); //返回DataTable
return dt;
}
#endregion

小学问,大道理。try…catch…的作用影响很大的……

ServerVersion 引发了“System.InvalidOperationException”类型的异常的更多相关文章

  1. 困扰:C#.net 连接Oracle11g 不报错但是在connection时出现 ServerVersion 引发了“System.InvalidOperationException”类型的异常

    今天在使用VS2008 32位 连接 64位的Oracle11g的数据库时出现 “conn.ServerVersion”引发了“System.InvalidOperationException”类型的 ...

  2. dsLinq.Count() 引发了“System.NullReferenceException”类型的异常

    DataTable dt = PurchaseArriveInfoBus.GetPurchaseArriveInfo(companyCD, txtArriveNo, txtTitle, txtProv ...

  3. “System.InvalidOperationException”类型的未经处理的异常在 ESRI.ArcGIS.AxControls.dll 中发生

    问题描述: 新手们进行ArcGIS ArcObject开发时经常会遇到各种十分古怪的问题,比如下面的这个问题: “System.InvalidOperationException”类型的未经处理的异常 ...

  4. “System.Exception”类型的异常在 NHibernate.dll 中发生,但未在用户代码中进行处理

    “System.Exception”类型的异常在 NHibernate.dll 中发生,但未在用户代码中进行处理 其他信息: OCIEnvCreate 失败,返回代码为 -,但错误消息文本不可用. 如 ...

  5. “System.OutOfMemoryException”类型的异常在 mscorlib.dll 中发生,但未在用户代码中进行处理

    “System.OutOfMemoryException”类型的异常在 mscorlib.dll 中发生,但未在用户代码中进行处理 这个原因肯定不是因为程序内部的逻辑错误,或者别的什么情况. 想想,肯 ...

  6. mvc “System.NullReferenceException”类型的异常在 App_Web_zo44wdaq.dll 中发生,但未在用户代码中进行处理 其他信息: 未将对象引用设置到对象的实例。

    “System.NullReferenceException”类型的异常在 App_Web_zo44wdaq.dll 中发生,但未在用户代码中进行处理 其他信息: 未将对象引用设置到对象的实例. 解决 ...

  7. EF异常:“System.InvalidOperationException”类型的未经处理的异常在 mscorlib.dll 中发生

     实体框架System.Data.Entity.SqlServer提供者类型”. SqlProviderServices EntityFramework. 的在应用程序配置文件注册状态"置疑 ...

  8. “System.FormatException”类型的异常在 mscorlib.dll 中发生,但未在用户代码中进行处理 其他信息: 该字符串未被识别为有效的 DateTime。

    前台用过jquery ajax将值传递到 后台的一般处理程序 并且报了这个异常 原因是:前台传递过来的时间格式不对  需要把 "/"换成 "-"   例如:20 ...

  9. 错误提示:未处理的“System.NullReferenceException”类型的异常出现在 system.data.dll 中。 其他信息: 未将对象引用设置到对象的实例。

    这种情况的发生一般有3种情况:1.代码中有一个对象没有初始化.例如Form A=new Form();2.连接数据库的问题.连接和打开连接的语句.3.T-SQL语句不正确,引起在访问数据库时有问题.

随机推荐

  1. 过滤HTML

    过滤HTML public static string NoHTML(string html){ string[] strArray2 = new string[] { "font" ...

  2. css 文本两端对齐

    在做表单时我们经常遇到让上下两个字段对齐的情况,比如姓名, 手机号码, 出生地.这样我们就要用到 text-align, text-justify样式了. text-align直接设为justify就 ...

  3. winfrom中按钮文本&的显示问题/按钮快捷键设置问题

    其实这个问题是因为“&”有特殊的意义-就是可以作为快捷键 第一种:Alt + *(按钮快捷键) 在大家给button.label.menuStrip等控件设置Text属性时在名字后边加& ...

  4. Sharepoint 问题集锦 - 配置

    错误 在sharepoint designer中编辑List的表单的时候,提示soap:Server服务器无法处理请求. ---> 值不在预期的范围内. 解释: 这个是由于我在本地测试的时候,使 ...

  5. 跨平台的WatiForSingleObject实现

    移植win32程序时,有一个难点就是涉及到内核对象的操作,需要模拟win32的实现. 其中比较奇葩的一个是WaitForSingleObject系列. Linux中没有类似的timeout实现,模拟这 ...

  6. spm使用之三spm应用实例

    spm 的init实际上是调用了grunt这个工具来实现一些交互式的提问和数据的获取. 看看npm就知道, npm有个命令叫init, 就是一样的交互式提问获取你要创建的nodejs的模块信息. sp ...

  7. 微软HoloLens技术解谜

    HoloLens 是什么? HoloLens 是微软发布的可穿戴式增强现实计算设备,它拥有这么几个关键要素: 它是增强现实产品,即 Augmented Reality(AR),AR 技术将计算机生成的 ...

  8. CAVLC

    在H.264标准中,CAVLC(Context-based Adaptive Variable Length Coding)被用于亮度和色度残差数据编码.在标准的码流结构中,CAVLC编码方式描述为c ...

  9. [cocos2d demo]新科娘收集水表

    讲述的是新科娘在沙滩上遇到一大波水表的故事... 下载地址 链接:http://pan.baidu.com/share/link?shareid=2141087190&uk=293716439 ...

  10. 最大流算法---Edmond-Karp

    这个算法是基于FF方法,就是通过不断求残余网络的增广路来增广流量,直到找不到增广路为止.注意:每次找到增广路以后都要更新原网络.EK算法通过BFS寻找源S到汇T的一条最短路径,因此时间复杂度是O(VE ...