关于dataset,恳请帮忙。谢谢!不是很难。c#.

来源:百度知道 编辑:UC知道 时间:2024/05/10 10:56:29
DataSet ds = new DataSet();
ds = db.GetDataSet("Select * From student");
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
MessageBox.Show(ds.Tables[0].Rows[i][0].ToString());
这个是按钮单击执行的,现在有二个问题:
1:我把数据库关闭,这个还是执行,为什么?如果不让他执行,需要添加什么语句?ds.dispose();这个好像不好使。
2:数据库不关的情况下,第一次单击ds.Tables[0].Rows.Count值就是正常值,第二次单击就是原值的二倍,而显示就是那几个字段值得重复,怎么解释?
谢谢!~
GetDataSet
是我数据库类定义的方法,返回dataset。

这就是DataSet 的作用,断开式访问数据库。所以就算是你断开了数据库,但是数据已经被读取到了dateset这个类似“数据库”的内存数据库中了。即就算是你关闭了数据库,数据仍然能够显示。

而你在不关闭数据库的前提下单击时,数据还停留在内存中,但是程序又会从数据库中读取,所以你点击多少次他会重复多少次。你可以在第二次单击时触发Clear()清除数据。

dateset访问数据有很多优势,以后你就发现,只是对于敏感的数据不太适合。

GetDataSet是一个方法吧,这个方法里面是先链接数据库,然后执行操作,最后应该把数据库链接关闭掉
后面你执行的操作与数据库连接无关哈

ds.dispose()只是释放你这个对象而已,要关闭数据库你要找到你链接数据库的对象啊。

把数据库链接关闭