实在是搞不清楚是什么地方出了问题!!帮我看一下,谢谢!!! 建议不要使用DataReader作为返回值,用完datareader后及时关闭 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你看到了。我再用完之后及时关闭了,datareader的读取速度快我又使用dropdownlist读取数据所以…………我也非常想弄明白问题所在。 奇怪,我也用DATAREADER啊,听好的,没出现你这问题啊 行 31: }行 32: 行 33: SqlDataReader sqlDR = sqlCmd.ExecuteReader();行 34: 行 35: return sqlDR;源文件: d:\hbj2003\dbobject\protectweb.cs 行: 33 // 返回表Accounts_Users的所有数据,提供下拉菜单的数据绑定。 public SqlDataReader sqlDRUsers() { string strSql ="SELECT * FROM Accounts_Users"; SqlCommand sqlCmd = new SqlCommand(strSql,Conn); if (Conn.State == ConnectionState.Closed) { Conn.Open(); } SqlDataReader sqlDR = sqlCmd.ExecuteReader(); return sqlDR; }是类库中的。我昨天用时没发现问题。今天添加了:public SqlDataReader sqlDRRoles()// {// string sqlStr = "SELECT * FROM Accounts_Roles";// SqlCommand sqlCmd = new SqlCommand(sqlStr,Conn);//// if (Conn.State == ConnectionState.Closed)// {// Conn.Open();// }// SqlDataReader sqlDR = sqlCmd.ExecuteReader();//// return sqlDR;// } }导致错误,然后我添加了状态监测if (Conn.State == ConnectionState.Closed)无效。注释后导致以上错误!! 改成这样呢?if(vConnection.State!=ConnectionState.Open){ Conn.Open();} Conn.Open()前重新对Conn连接串赋值呢?就是Conn.ConnectionString="....." 找出以前跟Conn联系的DataReader,DataReader.Close();或者Conn.Close()先再Conn.Open(); Conn打开时,采用和Datareader同时打开和关闭的方式,即Datareader关闭,Conn也关闭。 解决了。我终于搞清了问题所在。在类的内部sqldatareader是打开的并没有关闭。在类的外部强行关闭会导致出现的问题。解决办法:sqldatareader sqlDR = sqlCmd.exectuereader(commandbehavior.closeconnection);虽然只是这一条语句,却在外部调用的时候自动关闭了(connection.close()).我用state测试过,不明白原理。 邮箱快捷登陆。发现163和126的在登陆的时候警告提示 我想下载vs2008,找了几个网址都下不了,请大家帮忙推荐一下下载网址 请各位帮我看看DIV闭合问题好吗?看了一上午还是看不出来,只知道有问题了? 如何刷新本页面同时传递参数? 怎样在DataGrid中插入文字? 新手发问,高手赐教呀! 性能问题,高手执教 DateGrid如何动态产生列标题啊 MVC求指教! 请大家谈谈导入导出CSV文件的最佳解决方案--在线等待 关于Session在ASP与asp.net传递的问题? 求助:程序里如何动态添加用户自定义控件
行 32:
行 33: SqlDataReader sqlDR = sqlCmd.ExecuteReader();
行 34:
行 35: return sqlDR;源文件: d:\hbj2003\dbobject\protectweb.cs 行: 33
// 返回表Accounts_Users的所有数据,提供下拉菜单的数据绑定。
public SqlDataReader sqlDRUsers()
{
string strSql ="SELECT * FROM Accounts_Users";
SqlCommand sqlCmd = new SqlCommand(strSql,Conn);
if (Conn.State == ConnectionState.Closed)
{
Conn.Open();
} SqlDataReader sqlDR = sqlCmd.ExecuteReader(); return sqlDR;
}是类库中的。我昨天用时没发现问题。今天添加了:
public SqlDataReader sqlDRRoles()
// {
// string sqlStr = "SELECT * FROM Accounts_Roles";
// SqlCommand sqlCmd = new SqlCommand(sqlStr,Conn);
//
// if (Conn.State == ConnectionState.Closed)
// {
// Conn.Open();
// }
// SqlDataReader sqlDR = sqlCmd.ExecuteReader();
//
// return sqlDR;
// }
}
导致错误,然后我添加了状态监测if (Conn.State == ConnectionState.Closed)无效。注释后导致以上错误!!
if(vConnection.State!=ConnectionState.Open)
{
Conn.Open();
}
或者Conn.Close()先再Conn.Open();
在类的内部sqldatareader是打开的并没有关闭。在类的外部强行关闭会导致出现的问题。解决办法:sqldatareader sqlDR = sqlCmd.exectuereader(commandbehavior.closeconnection);虽然只是这一条语句,却在外部调用的时候自动关闭了(connection.close()).我用state测试过,不明白原理。