简单问题,大家来看看

karl 2003-10-20 04:41:44
很简单的一个程序
private void Form1_Load(object sender, System.EventArgs e)
{
sqlDataAdapter1.Fill(dataSet11);
}

private void button1_Click(object sender, System.EventArgs e)
{
if(dataSet11.HasChanges())
{
MessageBox.Show ("HC");
}
dataSet11.AcceptChanges();
int i = sqlDataAdapter1.Update(dataSet11);
MessageBox.Show (i.ToString());
}

private void sqlDataAdapter1_RowUpdated(object sender, System.Data.SqlClient.SqlRowUpdatedEventArgs e)
{
//更新完成
MessageBox.Show ("更新完成");
}
}
}
insertCommand,UpdateCommand,DeleteCommand都由IDE生成好了,我按照上面的方式无法更新数据,我用dataGrid获取DataSet里面的表,然后在dataGrid上面修改数据,然后点击button1,表面上好像正常,但是数据没有更新到服务器,也不报错,不知道还欠缺什么?
...全文
34 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
karl 2003-10-20
  • 打赏
  • 举报
回复
up
gshope 2003-10-20
  • 打赏
  • 举报
回复
执行的顺序有问题,应该是:
int i = sqlDataAdapter1.Update(dataSet11);
dataSet11.AcceptChanges();

如果你先AcceptChanges(),就没有带有修改标记的记录了,当然也就不会update到什么数据了。
karl 2003-10-20
  • 打赏
  • 举报
回复
哦,原来update要up dataSet11.GetChanges();我以为把整个dataset up上去就可以了...好了,谢谢......100分都给你了
HNU 2003-10-20
  • 打赏
  • 举报
回复
private void button1_Click(object sender, System.EventArgs e)
{
if(dataSet11.HasChanges())
{
MessageBox.Show ("HC");
}
dataSet11.AcceptChanges();
int i = sqlDataAdapter1.Update(dataSet11);
MessageBox.Show (i.ToString());
}


上面你好像没有做什么啊!

private void button1_Click(object sender, System.EventArgs e)
{
if(dataSet11.HasChanges())
{
MessageBox.Show ("HC");
}
/////你需要获取内存中修改过的数据////////////
DataSet changedData = dataSet11.GetChanges();
if(changedData != null)
{
dataSet11.AcceptChanges();
int i = sqlDataAdapter1.Update(dataSet11);
MessageBox.Show (i.ToString());
}
}

110,534

社区成员

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

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

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