首先用數據集 ds 填充GridView.
然後對GridView數據行做新增,修改,刪除操作,之後對所作的編輯一起存入數據庫
現在遇到這樣的問題了,
由於我在 調用數據填充到ds 至 保存GridView所作的編輯 這段時間內...有其它用戶修改過數據
這樣.ds 就從數據表中找不到原始的資料數據.就提交不了我現在的想法是..
在保存之前,再聲明一個sqldataAdapert,然後用新的sqldataAdapert.update(ds.GetChanges())
注意:保存的是變更ds的復寫不知道這樣行不行.....高人們指教下..或提點更好的意見還有一點:批量保存數據就衹能update(dataset) 和 用循環一條條的保存嘛????
然後對GridView數據行做新增,修改,刪除操作,之後對所作的編輯一起存入數據庫
現在遇到這樣的問題了,
由於我在 調用數據填充到ds 至 保存GridView所作的編輯 這段時間內...有其它用戶修改過數據
這樣.ds 就從數據表中找不到原始的資料數據.就提交不了我現在的想法是..
在保存之前,再聲明一個sqldataAdapert,然後用新的sqldataAdapert.update(ds.GetChanges())
注意:保存的是變更ds的復寫不知道這樣行不行.....高人們指教下..或提點更好的意見還有一點:批量保存數據就衹能update(dataset) 和 用循環一條條的保存嘛????
不知道這樣行不行.....高人們指教下..或提點更好的意見
==
肯定不行,如果你的数据在数据库里已经被修改,这条数据是不能提交成功的
還有一點:批量保存數據就衹能update(dataset) 和 用循環一條條的保存嘛????
==
就ADO.NET本身的功能,应该只能这样了
你可以通过Adapter.ContinueUpdateOnError = false;来屏蔽掉错误,这样未改动过的记录可正常更新回数据库,而改动过的记录不变。若坚持使用Adapter.Update更新,你也可以手动修改相关命令(UpdateCommand,InsertCommand,DeleteCommand),去掉where中关于“Original_字段"的判断。
操作数据库的时候,最好能把相关表锁定,这样应该会最大程度上的避免出现并发问题,但是感觉处理过于粗暴了。。
还有就是,Adapter.Update()我原来测试过,只能更新数据源是单个表的情况,如果,数据源是多个表内/外连接的,好像就不能正确执行了。我是一条一条循环更新/插入/删除的,不知道有没有高手给个思路。一直想换个方法,但是没有什么好思路