读书人

DataReader.read()的有关问题

发布时间: 2012-02-27 10:00:22 作者: rapoo

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();        }    } 

读书人网 >asp.net

热点推荐