日期:2014-05-18  浏览次数:20364 次

一个怪问题
我用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())不会再执行,

所以问题应该在