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

[复制链接]
查看11 | 回复3 | 2008-12-26 11:29:22 | 显示全部楼层 |阅读模式
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[0].ToString());
这个是按钮单击执行的,现在有二个问题:
1:我把数据库关闭,这个还是执行,为什么?如果不让他执行,需要添加什么语句?ds.dispose();这个好像不好使。
2:数据库不关的情况下,第一次单击ds.Tables[0].Rows.Count值就是正常值,第二次单击就是原值的二倍,而显示就是那几个字段值得重复,怎么解释?
谢谢!~
GetDataSet
是我数据库类定义的方法,返回dataset。

回复

使用道具 举报

千问 | 2008-12-26 11:29:22 | 显示全部楼层
这就是DataSet 的作用,断开式访问数据库。所以就算是你断开了数据库,但是数据已经被读取到了dateset这个类似“数据库”的内存数据库中了。即就算是你关闭了数据库,数据仍然能够显示。而你在不关闭数据库的前提下单击时,数据还停留在内存中,但是程序又会从数据库中读取,所以你点击多少次他会重复多少次。你可以在第二次单击时触发Clear()清除数据。dateset访问数据有很多优势,以后你就发现,只是对于敏感的数据不太适合。...
回复

使用道具 举报

千问 | 2008-12-26 11:29:22 | 显示全部楼层
把数据库链接关闭...
回复

使用道具 举报

千问 | 2008-12-26 11:29:22 | 显示全部楼层
ds.dispose()只是释放你这个对象而已,要关闭数据库你要找到你链接数据库的对象啊。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行