作者:Name: planRED 郵件:planred#163.com
http://api.533.net/ 這個是我新做的一個小站,宗旨為“beginner to beginner”,因為我也是初學者:) 里面的“心得體會” 都是我自己寫的。
大家知道,DataSet保存的數據是位于服務器內存里面的原數據庫的“副本”。所以用DataSet更新數據的過程就是先對“副本”進行更新,然后在將“原本”更新,按照我的理解就是把“原本”覆蓋掉。具體到過程,首先是要找到需要更新的行,然后賦新值,最后更新原數據庫。
要找到需要修改的行,比較方便的做法就是根據記錄中的某個值進行查找,這樣比用“列號”“行號”什么的方便多了。要做到這一點,首先就是要給數據庫指定一個主鍵,然后即可按照主鍵進行查找。要注意的是這個主鍵必須要是在程序中指定的,并且這個主鍵不一定和你數據庫原來有的主鍵一樣。
然后就是最后的更新,當然是用DataAdapter的Update()方法借助CommandBuilder來實現,要注意的是,如果你的數據庫一開始沒有定義主鍵,那進行更新的時候會出錯,返回的錯誤將是“對于不返回任何鍵列信息的 SelectCommand 不支持 UpdateCommand 的動態(tài) SQL 生成!边@是因為我們用的Update()實際上是通過CommandBuilder動態(tài)生成sql語句,然后才進行的數據庫操作。但如果你在一開始創(chuàng)建DataAdapter時的那個sql語句沒有包含有主鍵的列的話,那CommandBuilder將不會發(fā)生作用。這一點是必須要牢記的。
說了這么多,如果有不明白的就看下面的程序,這個是我練習時寫的,里面有一些個人的設定,比如記錄名什么的,相信大家一看就明白。 代碼拷貝框
[Ctrl+A 全部選擇 然后拷貝]
出處:藍色理想
責任編輯:藍色
◎進入論壇網絡編程版塊參加討論
|