ServerVersion 引发了“System.InvalidOperationException”类型的异常
2013-07-09 15:24
399 查看
遇到这样一个问题:添加互评信息,断点调试,跳转到BLL层后就直接跳到SqlHelper中弹出错误,说:未将对象设置引用到实例等。还请人帮忙调试代码,调试半天发现抽象工厂并没成功完成反射,奇怪的是:将出现问题的方法中换用反射其他的接口没有问题,后来将有问题的接口和DAL层类都重写了,问题好像解决了。所以添加互评就这么实现了,结果实现查询操作的时候问题重现了,我逐步调试,发现这样一个问题,调试到抽象工厂类,会发现这个问题:ServerVersion 引发了“System.InvalidOperationException”类型的异常。
如果您跟我一样使用SqlHelper了,你可以这样试着解决下问题:看一下你SqlHelper类中的方法是否正常使用了Try…Catch…,我的这个问题就是因为SqlHelper中Try…Catch…使用不正确,打开的数据库连接并没正常关闭。
出现问题的带参数sql查询语句或存储过程
修改后的sql查询语句或存储过程
小学问,大道理。try…catch…的作用影响很大的……
如果您跟我一样使用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…的作用影响很大的……
相关文章推荐
- 困扰:C#.net 连接Oracle11g 不报错但是在connection时出现 ServerVersion 引发了“System.InvalidOperationException”类型的异常
- ServerVersion 引发了“System.InvalidOperationException”类型的异常
- connection .server version引发了system.invalidOperationException类型的异常
- ServerVersion = “conn.ServerVersion”引发了“System.InvalidOperationException”类型的异常
- C# ServerVersion = “Conn.ServerVersion”引发了“System.InvalidOperationException”类型的异常
- [VB.NET]求助:::ServerVersion = “sqlconn.ServerVersion”引发了“System.InvalidOperationException”类型的异常
- C# ServerVersion = “Conn.ServerVersion”引发了“System.InvalidOperationException”类型的异常
- System.InvalidOperationException”类型的未经处理的异常在 mscorlib.dll 用户代码未进行处理
- 异常[System.InvalidOperationException: 未指定'xxx'的定制类型映射或该映射]解决方案
- C#之解决 未处理的“System.InvalidOperationException”类型的异常出现在 System.dll中...
- 在使用Linq to SQL并序列化一个数据对象的时候报System.InvalidOperationException异常,序列化类型XXX的对象时检测到循环引用。
- EF异常:“System.InvalidOperationException”类型的未经处理的异常在 mscorlib.dll 中发生
- 在使用Linq to SQL并序列化一个数据对象的时候报System.InvalidOperationException异常,序列化类型XXX的对象时检测到循环引用。
- 在 System.InvalidOperationException 中第一次偶然出现的“System.Xml.dll”类型的异常
- EF异常:“System.InvalidOperationException”类型的未经处理的异常在 mscorlib.dll 中发生
- EF异常:“System.InvalidOperationException”类型的未经处理的异常在 mscorlib.dll 中发生
- ”System.InvalidOperationException”类型的未经处理的异常出现在 mscorlib.dll 中
- EF异常:“System.InvalidOperationException”类型的未经处理的异常在 mscorlib.dll 中发生
- EF异常:“System.InvalidOperationException”类型的未经处理的异常在 mscorlib.dll 中发生
- “System.InvalidOperationException”类型的未经处理的异常在 EntityFramework.dll 中发生