在資料庫中批量插入資料許多人都已經了解了,就是使用.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...