遇到这样一个问题:添加互评信息,断点调试,跳转到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. Spring MVC 3.2 406 Not Acceptable

    Spring MVC 3.2 406 Not Acceptable 这个报错主要是因为SpringMVC配置文件配置问题. 修改步骤如下: 首先,修改spring-mvc.xsd为 spring-mv ...

  2. WPF学习(一)控件的公共属性

    Visiblity控件是否可见:枚举类型:Visible表示可见.Collapsed不可见. IsEnabled:控件是否可用:bool类型. Background:背景色. FontSize:字体大 ...

  3. ExecuteNonQuery&& ExecuteQuery 区别

    前些日子作一些数据项目的时候 在ADO.NET 中处理 ExecuteNonQuery()方法时,总是通过判断其返回值是否大于0来判断操作时候成功 .但是实际上并不是这样的,好在处理的数据操作多时 修 ...

  4. 我学C的那些年[ch02]:宏,结构体,typedef

    c语言的编译过程: 预处理 编译 汇编 链接 而预处理中有三种情况: 文件包含( #include ) 条件编译(#if,#ifndef,#endif) 宏定义( #define ) 宏就是预处理中的 ...

  5. 学习Swift -- 泛型

    泛型 泛型代码可以让你写出根据自我需求定义.适用于任何类型的,灵活且可重用的函数和类型.它的可以让你避免重复的代码,用一种清晰和抽象的方式来表达代码的意图. 泛型所解决的问题 先来看一个交换两个int ...

  6. 数据结构练习 01-复杂度2. Maximum Subsequence Sum (25)

    Given a sequence of K integers { N1, N2, ..., NK }. A continuous subsequence is defined to be { Ni, ...

  7. Hadoop 学习笔记 (九) hadoop2.2.0 生产环境部署 HDFS HA部署方法

    step1:将安装包hadoop-2.2.0.tar.gz存放到某一个目录下,并解压 step2:修改解压后的目录中的文件夹/etc/hadoop下的xml配置文件(如果文件不存在,则自己创建) 包括 ...

  8. LA 3904

    一道DP题: 一共有三种砖,1*2,2*1,2*2,然后要你铺满整个n*2的地板,求不重复的铺法数: 方法: 首先计算了不考虑对称的情况,然后计算只考虑对称的情况: 所以结果就是(不考虑对称数+只考虑 ...

  9. 【UVA10972】RevolC FaeLoN (求边双联通分量)

    题意: 给你一个无向图,要求把所有无向边改成有向边,并且添加最少的有向边,使得新的有向图强联通. 分析: 这题的解法还是很好想的.先用边双联通分量缩点,然后找新图中入度为0和为1的点,入度为0则ans ...

  10. PendingIntent的Flags

    PendingIntent是一个Intent的描述.包装,给予了这个PendingIntent 的组件在指定的事件发生或指定的时间到达时启动Activty.Service或者Broadcast. 根据 ...