SqlDataAdapter 批量更新資料庫表

2021-09-08 17:31:57 字數 2094 閱讀 1820

在資料庫中批量插入資料許多人都已經了解了,就是使用.net 中的sqlbulkcopy物件(msdn詳解

)。我們在做評教系統的時候使用過這個物件,它能將資料表批量匯入到資料庫中,效率比單條插入資料效率高很多,具體的我就不多說了,看msdn就可以了。 

但是最近我在做乙個專案的時候,遇到了乙個問題,就是批量修改資料表,sqlbulkcopy物件是不能實現這個需求的。於是,我就求助了度娘,搜到了這篇文章sqldataadapter update

。具體的實現方式就是使用了.net中的sqldataadapter(msdn解釋

)物件,想必許多人對這個物件已經很熟悉了,我以前只是把它當作簡單的運算元據庫的物件來使用,現在才發現它還可以把資料批量更新到資料庫中。

總的來說,批量更新資料需要的物件主要有三個有:

sqldataadapter核心物件

sqlcommand總共需要四個,分別對應資料表的select、add、update、delete操作。具體解釋一下。對一張資料表,可能執行四種操作,就是增加、刪除、修改、查詢,當sqldataadapter最後提交操作時,會根據資料表中的每一條記錄的標誌(增加、刪除、修改、查詢)來使用對應的sqlcommand對它(一條記錄)進行操作,所以需要四個。

dataset或datatable等儲存待更新到資料庫中的資料。

這樣,我們為了實現資料表的批量更新,可以先把資料表查詢到dataset或datatable中,然後對其進行各種修改,最後寫回到資料庫中。

需要注意的是,資料庫中的待更新的表及dataset或datatable中的表必須要有主鍵。

1

"font-size:18px;

">system.data.sqlclient.sqldataadapter sda = new system.data.sqlclient.sqldataadapter();//

定義乙個sqldataadapter 的例項

23 sqlcommand scmd = new sqlcommand();//

定義乙個sqlcommand的例項,以便繫結

4 scmd.commandtype =commandtype.text;

5 scmd.connection = new

sqlconnection(connectionstring);

67 scmd.parameters.add("

@acc_title_id

", sqldbtype.int, 4, "

acc_title_id

");//

重要的地方,將dt的列寫到引數中去

8 scmd.parameters.add("

@acc_std_title_id

", sqldbtype.int, 4, "

acc_std_title_id");

9 scmd.parameters.add("

@back_id

", sqldbtype.int, 4, "

back_id");

1011 scmd.commandtext = string.format("

update t_std_acc_title_ent_acc_title set acc_title_id=@acc_title_id where acc_std_title_id = @acc_std_title_id and acc_id = and acc_title_id=@back_id

", eleid);//

更新操作對應的sql語句

12 sda.updatecommand = scmd;//

設定sqldataadapter執行update操作時使用的物件

13//

還需要設定另外那三個sqlcommand物件,方法類似,這裡就不贅述了。

1415 sda.update(dt);//

將datatable中的資料更新到資料庫,dt中的資料可以來自資料庫,或者其他地方。

16

程式設計師的基礎教程:菜鳥程式設計師

SqlDataAdapter使用儲存過程

a public static dataset imagemessage string mvname sqlconnection mycon createconn.conn string mvname 美女 string strsql select from fimage where mv id s...

利用SqlDataAdapter複製資料行

專案中需要實現乙個資料行的複製功能,也就是有些資料資訊,大部分內容都是一樣的,只有少數幾個引數不同,實現這個功能以簡化使用者的輸入。按理說,這種功能實現起來非常簡單,但是這裡有個問題,表的字段非常多,超過100,以前,都是習慣於手寫sql,這時麻煩就來了,sql還真長,雖然可以利用工具生成,但引數的...

C 中SqlDataAdapter的使用

sqldataadapter是資料庫操作的一種形式,可以將查出的資料填充到dataset中。它的特點是你可以通過update方法,將修改過的dataset自動更新回資料庫,而不需要重新寫update或者delete語句。下面上 先定義幾個必要的字段 連線字串 private string strco...