ASP.NET 自定义数据库访问类

来源:百度知道 编辑:UC知道 时间:2024/05/08 15:17:53
小弟最经刚刚接触.NET
今天写了一个数据库类,用于数据库的连接读取等等一些数据库操作
有一个问题
就是
关闭数据库连接怎么实现?
如果写在类中的话,提示
异常详细信息: System.InvalidOperationException: 阅读器关闭时 Read 的尝试无效。
部分代码:
--数据库类--
public SqlDataReader GetDataReader(string strSql)
{
string Conn = System.Configuration.ConfigurationSettings.AppSettings["connstring"];
SqlConnection myconn=new SqlConnection(Conn);
myconn.Open();
try
{
SqlCommand OleCmd = new SqlCommand( strSql,myconn );
SqlDataReader OleDr = OleCmd.ExecuteReader();
return OleDr;
}
finally
{
//myconn.Close();
}
}
--CB--
SqlDataReader dr= Das.GetDataReader("select * from users where username='" + id.Text.Trim() + "'");
if(dr.Read())
{
if(password.Text==dr["Pwd"].ToString().Trim())
{
Session["user"

public SqlDataReader GetDataReader(string strSql)
{
string Conn = System.Configuration.ConfigurationSettings.AppSettings["connstring"];
SqlConnection myconn=new SqlConnection(Conn);
myconn.Open();
try
{
SqlCommand OleCmd = new SqlCommand( strSql,myconn );
SqlDataReader OleDr = OleCmd.ExecuteReader();
return OleDr;
}
finally
{
//myconn.Close();
}
}
这个里面有错误,你已经返回了OleDr了,关闭当然会错
把return OleDr 放到最后就可以了

public SqlDataReader GetDataReader(string strSql)
{
string Conn = System.Configuration.ConfigurationSettings.AppSettings["connstring"];
SqlConnection myconn=new SqlConnection(Conn);
SqlCommand OleCmd=null;
SqlDataReader OleDr=null;
try
{
OleCmd = new SqlCommand( strSql,myconn );
myconn.Open();
OleDr = OleCmd.ExecuteReader();
}
catch
{
}
finally
{
myconn.Close(); <