以下是自定义类
namespace IOCS2SQL
{
public class sqlconn
{
//把sql數據讀入到SqlDataReader對象中
public SqlDataReader sqltoreader(string sqlstr)
{
SqlConnection conn = new SqlConnection(@"user id=sa;password=****;initial catalog=*****;data source=****");
conn.Open();
SqlCommand sqlcomm = conn.CreateCommand();
sqlcomm.CommandText = sqlstr;
SqlDataReader sqldr = sqlcomm.ExecuteReader();
return sqldr;
}
}
}
我在程序中实例一个这个类,调用完毕后想关闭类的sqltoreader方法里面建立的数据库连接conn,请问怎么处理,谢谢。
另外问个小白问题,就是我在方法、过程、函数、循环等等私有化操作中建立的数据库连接,如果不关闭,在调用结束后会不会自动关闭的,比如我上面的例子里,conn是在类方法内部的private性质的,调用sqltoreader完成之后,它会不会自动关闭的?表述可能有些不清楚,请各位大侠不要在字眼上纠缠,明白意思最重要,万分感谢。
try catch finaly
DataReader 你做不到。DataReader 必须保持住连接状态,外面才能使用。
所以如果你使用DataReader,这个关闭过程就必须放在外面。
ps:datatable不存在这个毛病,如果你这里使用dt,那么在这里就可以把连接关闭,不需要等外面的去关闭他