一个怪问题
我用vs2005调试程序时没什么问题,但一建成虚拟目录发布网站时,登录时用datarader查询数据库里,说我的datareader未将对象引用设置到对象的实例。有人遇到过这个问题吗?
我的webfunction.cs文件中的datareader函数是这么写的,这里的函数都是静态函数,跟这个有没有关系呢?
public static OleDbDataReader dataReader(string sqlstr)
{
OleDbDataReader dr = null;
try
{
openConnection();
comm.CommandText = sqlstr;
comm.CommandType = CommandType.Text;
dr = comm.ExecuteReader(CommandBehavior.CloseConnection);
}
catch
{
try
{
dr.Close();
closeConnection();
}
catch
{
}
}
return dr;
}
登录代码如下 :
OleDbDataReader dread = WebFunction.dataReader(sqlstr);
if (dread.Read())
{ dread.Close();
Response.Redirect( "main.html ");
}
else
{
Response.Write( " <script language= 'javascript '> alert( '用户名或密码错误,请重新输入! ') </script> ");
}
dread.Close();
[解决办法]
OleDbDataReader 对象一但关闭就不能再使用。
楼主要注意。
[解决办法]
Response.Redirect( "main.html ");这一句下面的代码(dread.Close())不会再执行,
所以问题应该在dataReader方法里,感觉连接没有成功打开,返回的dr是null.