奇怪的问题,高分求教,进者有分!
c# winform程序中有一个datagrid,数据源是dataset,连接到数据库,用下面的代码更新
/******************************
DataSet change = dataSet11.GetChanges();
if(change != null)
{
int numRows = sqlDataAdapter1.Update(change);
MessageBox.Show("数据更新完成 " + numRows + " 行!",
"更新",MessageBoxButtons.OK,MessageBoxIcon.Information);
dataSet11.AcceptChanges();
}
else
{
MessageBox.Show("没有需要更新的数据","没有更新",
MessageBoxButtons.OK,MessageBoxIcon.Information);
}
/*******************************
但是更新的时候出现这样的问题,比如我给datagrid中填一行数据,然后点更新按牛,用上面的代码更新,提示没有需要更新的数据,但是如果填好数据以后先用鼠标点其他行,在去更新就可以更新成功,请问这是为什么?
------解决方案--------------------datagrid中填一行数据,然后点更新。这个时候datagrid还没有重新绑定数据,所以它还是以前的内容
要重新绑定一下再更新。
点其他行,在去更新就可以更新成功,就是因为有了事件触发重新绑定了。
------解决方案--------------------进来关注下~~~
------解决方案--------------------UP
------解决方案--------------------/******************************
//rebind();//自己写的方法
DataSet change = dataSet11.GetChanges();
if(change != null)
{
int numRows = sqlDataAdapter1.Update(change);
MessageBox.Show("数据更新完成 " + numRows + " 行!",
"更新",MessageBoxButtons.OK,MessageBoxIcon.Information);
dataSet11.AcceptChanges();
}
else
{
MessageBox.Show("没有需要更新的数据","没有更新",
MessageBoxButtons.OK,MessageBoxIcon.Information);
}
/*******************************
------解决方案--------------------在更新之前先把datagrid.Binding()一下就OK了
------解决方案--------------------学习
------解决方案--------------------更新之后重新DataBind()一下就可以了
------解决方案--------------------1、确定添加记录后,DataSet里也增加了记录,并且RowState是添加的。
2、确定要更新的表中有主键。