删除了 dataset 中的表,再次连接时,dataGrid 不显示数据了,郁闷呀。。。

jackiehua 2005-11-26 01:17:04
关闭ds的操作:

ds.Clear();
myConn.Close();
if (ds.Tables.Count > 0)
{
ds.Tables.Remove(TableName.Text);
}

连接的操作

SqlCommand cmd = new SqlCommand("SELECT * "+
"FROM " + TableName.Text,myConn);
da.SelectCommand = cmd;
da.Fill(ds,TableName.Text);
dataGrid1.DataSource = ds;

关闭ds的操作 和 连接的操作 在不同的按钮事件中,(dataGird用的是动态列)

问题是 执行了关闭操作后,连接同一个表,dataGrid中始终不显示数据了,那位好兄弟指点一下迷津。
...全文
104 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackiehua 2005-11-26
  • 打赏
  • 举报
回复
我试了一下,如果不 remove 或 clear table ,
执行了 ds.clear 操作后,
再次连接是能够保证 dataGrid 中的数据是 sqlserver 物理表中的原始数据。

如果 使用 remove 或 clear table ,
修改 datagrid 某行某列的值
不执行了 ds.clear 操作,则再次连接后 某行某列 是修改后的值,而这是我没有执行任何
提交到数据库操作。

我说得明白吗,请大家帮帮我吧。
jackiehua 2005-11-26
  • 打赏
  • 举报
回复
好象和 new 一个 SQLConnection 没有什么关系,我整个程序用的都是一个Connection,
DataSet.Tables.Clear 和 ds.Tables.Remove(TableName.Text);
都可以清除表,但是如果我在datagrid 中 改了某行某列的值(没有提交到数据库),
这时关闭连接再打开时,那个值却是已经更改的值。
jackiehua 2005-11-26
  • 打赏
  • 举报
回复
我的是winform 的, conn 是重新打开的。
kofboyx 2005-11-26
  • 打赏
  • 举报
回复
如果是web系统page类的成员会在一次页面显示的时候,全部解除,所以,如果你在两个事件过程中,就必须new两次ds出来。。
kofboyx 2005-11-26
  • 打赏
  • 举报
回复
另外,你的myConn有没有重新Open(最好是重新new一个出来)
kofboyx 2005-11-26
  • 打赏
  • 举报
回复
DataSet.Clear 是清除所有表中的所有行。并不清除表。
所以,请使用DataSet.Tables.Clear来清楚DS中所有的表。而不是表中的所有行。
解决了记得给分。
vivianfdlpw 2005-11-26
  • 打赏
  • 举报
回复
dataGrid1.DataSource = ds;
dataGrid1.DataBind();

111,119

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧