.net/C# 数据访问层 OleDbDataReader的写法
发布网友
发布时间:2022-04-12 10:41
我来回答
共4个回答
热心网友
时间:2022-04-12 12:10
我认为理想的 优雅的解决方案就是:
1、GetDataReader 方法中不要写 Open();与Close();,把 Open()拿到外面写。
2、在 while (drd.Read()) {} 之后写 Close();
3、 Open();与Close();尽量不要写在某个方法体内,这样写灵活性差,代码就容易出现你说的问题。
4、我的理论就是 在你要访问DB的时候才 Open();,在你访问结束以后就马上Close();
例如:
Open(); // 开
drd = GetDataReader(xx,xx);
while (drd.Read())
{
//...
}
Close(); // 关
热心网友
时间:2022-04-12 13:28
你有没有发现你的
return reader;
Close();
close是放在 return后面 程序不会执行到这的 当然就不能关闭啦
写法不对吧. 要用OleDbDataReader connection是必须不能关闭的
你可以在这个方法把OleDbDataReader 处理
可以在你用完OleDbDataReader 时调用connection关闭方法 而且要先关闭OleDbDataReader
reader.close()
再关闭connection .close()
还有不清楚 继续问吧!
热心网友
时间:2022-04-12 15:03
public OleDbDataReader GetDataReader(string Sqlstring)方法中Close()方法没有执行。这样数据库就没有关闭,接下来对数据库的操作危险可想而知。。。建议您可以把数据库的打开关闭操作放在这个方法外面执行在调用这个方法之前connection.Open下,用完这个方法马上connection.Close()。这样就可以了
热心网友
时间:2022-04-12 16:54
Close写法不对
if (conn.State == ConnectionState.Open)
{
conn.Close();
}