首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

DataReader.read()的有关问题

2012-02-27 
DataReader.read()的问题aa类里做了一个方法public static OleDbDataReader getdr(string sql){OleDbDataR

DataReader.read()的问题
aa类里做了一个方法
public static OleDbDataReader getdr(string sql)  
  {
  OleDbDataReader dr = null;
  try
  {
  conopen(); //打开数据库
  cmd.CommandType = CommandType.Text;
  cmd.CommandText = sql;
  dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
  }
  catch
  {
  dr.Close();
  }
  return dr;
  }

然后在另一页里调用
  string sql = "select * from usetb where uid='"+sid+"'";
  OleDbDataReader dr = aa.getdr(sql);
  if (dr.Read()) //这里就出错了
  {.... }
  else
  {.....}
调试时提示用户代码未处理InvalidOperationException
{"阅读器关闭时尝试调用 Read 无效。"}

正常运行时提示
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

我发现好象第一次执行是可以执行的,但第二次执行就这样出错了

[解决办法]
第一次用完之后没有关掉,第二次重复打开引发了异常dr就Close掉了
[解决办法]
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); 
把参数去掉
[解决办法]

C# code
    public static OleDbDataReader getdr(string sql)    {        OleDbDataReader dr = null;        try        {            conopen();  //打开数据库             cmd.CommandType = CommandType.Text;            cmd.CommandText = sql;            return dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);        }        catch        {            throw new Exception("AA");        }        finally        {            dr.Close();        }    } 

热点排行