dataset的一些疑问
在datagrid里装dataset
然后更新被修改的数据
try{
DataSet modify = this.dataSet1.GetChanges(DataRowState.Modified);
if(modify != null)
{
this.odbcDataAdapter1.Update(modify);
}
}......
或者
this.odbcDataAdapter1.update(this.dataSet1);
发现所修改数据的最后一行无法修改
也就是如果修改1,2,3三条记录的话,最后更新也只能得到两条,第三条没有更新,如果只修改一条的话,于脆就是没有更新
用
DataView dataView1 = new DataView(this.dataSet1.Tables[0]);
dataView1.RowStateFilter = DataViewRowState.ModifiedCurrent;
MessageBox.Show(dataView1.Count.ToString());
得到的行数发现也少了一行,为什么呢?
问题点数:50、回复次数:9Top
1 楼rf0007(热风)回复于 2006-03-16 14:44:02 得分 0
顶一下
这个问题困扰了我好久了
谢谢大家指条明路啊Top
2 楼livode(啊水)回复于 2006-03-16 15:16:34 得分 20
问题应该不是出在这里了。找找有没有循环控制的地方,查查初值Top
3 楼rf0007(热风)回复于 2006-03-16 15:17:59 得分 0
能不能说得具体一点呢?
比如说有什么样的初值会出来这总情况呢?
谢谢!Top
4 楼livode(啊水)回复于 2006-03-16 15:29:59 得分 0
......,就是for(i=1;i<=9;i++)这里的1,这里的1和9是控制循环的,一般也用来控制行,而数组的索引是从0开始的,看看这里有没有问题。Top
5 楼livode(啊水)回复于 2006-03-16 15:30:53 得分 0
我给的只是个例子,看看你的程序里有没有用到类似的东西。Top
6 楼hy98521(斯达克)回复于 2006-03-16 16:38:00 得分 10
代码都拿出来看下Top
7 楼heyuqing(heyuqing)回复于 2006-03-16 17:17:16 得分 10
个人观点:
可能是最后一行还没有更新吧,改好最后一条,把当前的行变动一下试试Top
8 楼llzhifly(狼)回复于 2006-03-16 17:27:25 得分 10
这个问题应该是datagrid的问题,也就是说在datagrid没有移开焦点的情况下,当前所选行是认为未被作修改的!
你可在执行提交的之前加上这句话:
this.contorl(某个控件).Focus();
Application.DoEvents();
.
.
do somesingTop
9 楼rf0007(热风)回复于 2006-03-16 17:38:41 得分 0
谢谢大家
我回去试试
明天结分
人人都有.......Top




