神是不会来救你的呵呵:
看看这个:
/// <summary>
/// 查询,返回DataSet结果集
/// </summary>
/// <param name="vSQLStatement">查询的sql语句</param>
/// <param name="vTableName">DataSet中的数据表名称</param>
/// <returns>DataSet形式的查询结果</returns>
public DataSet GetDataSet(string vSQLStatement,string vTableName)
{
strDSN = GetConnectString();
SqlConnection dbConnection = new SqlConnection(strDSN);
DataSet myDataSet = new DataSet();
strErr = "";
try
{
dbConnection.Open();
SqlDataAdapter myAdapter = new SqlDataAdapter(vSQLStatement,dbConnection);
myAdapter.Fill(myDataSet,vTableName);
}
catch(Exception objErr)
{
strErr = "[Err Source:]" + objErr.Source + "[Err Description:]" + objErr.Message;
}
dbConnection.Close();
return myDataSet;
}
看看这个:
/// <summary>
/// 查询,返回DataSet结果集
/// </summary>
/// <param name="vSQLStatement">查询的sql语句</param>
/// <param name="vTableName">DataSet中的数据表名称</param>
/// <returns>DataSet形式的查询结果</returns>
public DataSet GetDataSet(string vSQLStatement,string vTableName)
{
strDSN = GetConnectString();
SqlConnection dbConnection = new SqlConnection(strDSN);
DataSet myDataSet = new DataSet();
strErr = "";
try
{
dbConnection.Open();
SqlDataAdapter myAdapter = new SqlDataAdapter(vSQLStatement,dbConnection);
myAdapter.Fill(myDataSet,vTableName);
}
catch(Exception objErr)
{
strErr = "[Err Source:]" + objErr.Source + "[Err Description:]" + objErr.Message;
}
dbConnection.Close();
return myDataSet;
}
SqlDataReader1 = SqlCommand1.ExecuteReader(CommandBehavior.CloseConnection);
这句要datareader.close时相应的conn才会自动去关闭..我在事务层里一个dr都没close..我是猪..都dr.close()一下就一切正常了..以前我都没注意去关连接,现在作了稍大点的东西竟然发生这种错误,不过以后知道了,要及时关了..
楼上的reader好像不能关的,关了返回去的dr就不能用了,我用SqlDataReader1 = SqlCommand1.ExecuteReader(CommandBehavior.CloseConnection);这个来关的..应该也行的吧??
=====================================
是不能关的 datereader 是连数据库读的 不像datatable 可以短开连接