关于dataset更新问题

zhengyingcan 2009-04-09 08:05:16
DataRow findrow = ds.Tables["供方进料不合格统计表"].NewRow();
findrow["供应商"] = 供应商TextBox.Text;
ds.Tables["供方进料不合格统计表"].Rows.Add(findrow);
da.Update(ds, "供方进料不合格统计表");
dataGridView1.DataSource = ds.Tables["供方进料不合格统计表"];
MessageBox.Show("保存成功");
实际上我已经添加成功了,但是dataGridView1 看起来没有多一条记录,必须我关掉后,重新打开才行,有没有什么办法,保存后,立即可以看到最新的数据呢
...全文
153 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
曾经的拥有 2010-01-21
  • 打赏
  • 举报
回复
学习
zhengyingcan 2009-04-10
  • 打赏
  • 举报
回复
不过SQL SERVER 里数据的确是增加了一条
zhengyingcan 2009-04-10
  • 打赏
  • 举报
回复
findrow["检验员"] = 检验员TextBox.Text;
findrow["保存时间"] = DateTime.Now;
ds.Tables["供方进料不合格统计表"].Rows.Add(findrow);
da.Update(ds, "供方进料不合格统计表");
da.Fill(ds);
ds.Tables[0].TableName = "供方进料不合格统计表";
dataGridView1.DataSource = ds.Tables["供方进料不合格统计表"];
MessageBox.Show("保存成功");
天啊,我重新fill一次,datagridview1的数据居然还是没有变,撞鬼了,
zhengyingcan 2009-04-10
  • 打赏
  • 举报
回复
这样子当然可以啦,只是感觉如果不在局域网内,并且数据有五六千条,这种方法会不会很慢,每保存一次就填充一次,用户在等待中,会不会有情绪呢
ljhcy99 2009-04-10
  • 打赏
  • 举报
回复
重新打开连接,用数据适配器进行数据集的填充,
然后再dataGridView1.DataSource = ds.Tables["供方进料不合格统计表"];
zhengyingcan 2009-04-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 aa37742698 的回复:]
引用 8 楼 jiyan1221 的回复:
更新以后重新绑定一下可以吧?
datagridview.databind();



UP
[/Quote]

根本无法使用databind,不存在这个方法,这个方法只存在于datagrid控件中吧
aa37742698 2009-04-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jiyan1221 的回复:]
更新以后重新绑定一下可以吧?
datagridview.databind();
[/Quote]


UP
zhengyingcan 2009-04-10
  • 打赏
  • 举报
回复
datagridview1只有databindings方法,没有databind()方法,
dataGridView1.DataBindings();
这样子写在运行的时候出错,不能这样子用,
加上ds.acceptchanges() 也不行,
jiyan1221 2009-04-09
  • 打赏
  • 举报
回复
更新以后重新绑定一下可以吧?
datagridview.databind();
uncleson88 2009-04-09
  • 打赏
  • 举报
回复
不需要再次Fill~~~DataTable的改变可以直接反映到 DataGridView 中去的!!!
是不是你哪里写错了???
要不加个 ds.acceptchanges() 试试 ?
蔡袅 2009-04-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 csucj 的回复:]
要重新打开连接,用数据适配器进行数据集的填充,
然后再dataGridView1.DataSource = ds.Tables["供方进料不合格统计表"];
[/Quote]


cja03 2009-04-09
  • 打赏
  • 举报
回复
稍微试了一下,没有问题。


private void Form1_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("abc");

this.dataGridView1.DataSource = dt;

}

private void button1_Click(object sender, EventArgs e)
{
DataTable dt = this.dataGridView1.DataSource as DataTable;
DataRow row = dt.NewRow();
row[0] = "aaa";
dt.Rows.Add(row);
}
zhengyingcan 2009-04-09
  • 打赏
  • 举报
回复
删除是可以,但是添加却不行,你试过没有,我试过就是这样子的.
cja03 2009-04-09
  • 打赏
  • 举报
回复
试了一下,没有发现这个问题。
对数据源操作,dataGridView1可以马上反应过来。
zhengyingcan 2009-04-09
  • 打赏
  • 举报
回复
ds.Tables["供方进料不合格统计表"]; 假如有一万条记录呢,有没有更好的办法处理得快一点,
csucj 2009-04-09
  • 打赏
  • 举报
回复
要重新打开连接,用数据适配器进行数据集的填充,
然后再dataGridView1.DataSource = ds.Tables["供方进料不合格统计表"];

111,126

社区成员

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

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

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