用sqldataadapter.update(dataset ds)更新數(shù)據(jù)庫._第1頁
已閱讀1頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、一.用SqlDataAdapter.Update(DataSetDs)更新數(shù)據(jù)庫.1.DbDataAdapter調(diào)用Update方法時(shí),DataAdapter將分析已作出的更改并執(zhí)行相應(yīng)的命令(、UPDATE或)。當(dāng)DataAdapter遇到對DataRow的更改時(shí),它將使用Comm、UpdateComm或Comm來處理該更改。這樣,您就可以通過在設(shè)計(jì)時(shí)指定命令語法并在可能時(shí)通過使用存儲(chǔ)過程來盡量提高應(yīng)用程序的性能。在調(diào)用Update之

2、前,必須顯式設(shè)置這些命令。如果調(diào)用了Update但不存在用于特定更新的相應(yīng)命令(例如,不存在用于已刪除行的Comm),則將引發(fā)異常。但是如果DataTable映射到單個(gè)數(shù)據(jù)庫表或從單個(gè)數(shù)據(jù)庫表生成,則可以利用CommBuilder對象自動(dòng)生成DataAdapter的Comm、Comm和UpdateComm。為了自動(dòng)生成命令,必須設(shè)置Comm屬性,這是最低的要求。Comm所檢索的表架構(gòu)確定自動(dòng)生成的、UPDATE和語句的語法。如果在自動(dòng)生

3、成插入、更新或刪除命令后修改Comm的CommText,則可能會(huì)發(fā)生異常。如果已修改的mText所包含的架構(gòu)信息與自動(dòng)生成插入、更新或刪除命令時(shí)所使用的mText不一致,則以后對DataAdapter.Update方法的調(diào)用可能會(huì)試圖訪問Comm引用的當(dāng)前表中已不存在的列,并且會(huì)引發(fā)異常??梢酝ㄟ^調(diào)用CommBuilder的RefreshSchema方法來刷新CommBuilder用來自動(dòng)生成命令的架構(gòu)信息。對于DbDataAdapte

4、r.Update方法更新數(shù)據(jù)庫,每次在調(diào)用DbDataAdapter.Update(ds)之后一定要ds.acceptchanges否則會(huì)對后面用到的ds出現(xiàn)意想不到的錯(cuò)誤。.Framewk開發(fā)人員指南檢索“標(biāo)識(shí)”或“自動(dòng)編號(hào)”值為了確保表中的每一行都有唯一的值,可以將DataTable中的列設(shè)置為自動(dòng)遞增的主鍵。但是,您的應(yīng)用程序可能會(huì)有多個(gè)客戶端,而每個(gè)客戶端都可能會(huì)使用一個(gè)單獨(dú)的DataTable實(shí)例。在這種情況下,單獨(dú)的Data

5、Table實(shí)例之間最終可能會(huì)出現(xiàn)重復(fù)的值。由于所有客戶端都使用單個(gè)數(shù)據(jù)源,因此可以讓數(shù)據(jù)源定義自動(dòng)遞增值,從而解決這一沖突。若要完成此任務(wù),請使用MicrosoftSQLServer中的“標(biāo)識(shí)”列或MicrosoftAccess中的“自動(dòng)編號(hào)”字段。如果使用數(shù)據(jù)源為添加到DataSet中的新行填充“標(biāo)識(shí)”或“自動(dòng)編號(hào)”列,則會(huì)出現(xiàn)唯一的情況,因?yàn)镈ataSet與數(shù)據(jù)源之間沒有直接連接。因此,DataSet不識(shí)別任何由數(shù)據(jù)源自動(dòng)生成的值。

6、但是,對于可以創(chuàng)建帶有輸出參數(shù)的存儲(chǔ)過程的數(shù)據(jù)源(如MicrosoftSQLServer),可以將自動(dòng)生成的值(如新的標(biāo)識(shí)值)指定為輸出參數(shù)并使用DataAdapter將該值映射回DataSet中的相應(yīng)列。數(shù)據(jù)源可能不支持帶有輸出參數(shù)的存儲(chǔ)過程。在這種情況下,將可以使用RowUpdated事件來檢索自動(dòng)生成的值,并將其放入DataSet中的插入行或更新行。本節(jié)包含一個(gè)示例,顯示當(dāng)在MicrosoftAccess2000或更高版本上使用J

7、et4.0OLEDB提供程序時(shí),如何將代碼添加到RowUpdated事件中以確定插入是否已發(fā)生,然后檢索自動(dòng)生成的值并將其存儲(chǔ)在當(dāng)前更新的行中。檢索SQLServer“標(biāo)識(shí)”列的值以下存儲(chǔ)過程和代碼示例顯示如何將自動(dòng)遞增的標(biāo)識(shí)值從MicrosoftSQLServer表映射回添加到向DataSet的表添加的行中的相應(yīng)列。該存儲(chǔ)過程用于將一個(gè)新行插入Nthwind數(shù)據(jù)庫的Categies表并以輸出參數(shù)的形式返回從TransactSQLSCO

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論