Re: [問題] datatable一次寫入資料庫

看板C_Sharp (C#)作者 (blackbing)時間18年前 (2007/03/28 00:03), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/5 (看更多)
※ 引述《diamondking (天劍流星)》之銘言: : ※ 引述《tomex (Tomex Ou)》之銘言: : : 要一次insert很多筆,前陣子我也研究過這方面 : : 首先,每個insert語法串起來,用「;」隔開是ok的 : : 但好像寫法上雜了一點,而且sqlserver都有總字串大小的限制 : : 因此我在sql語法上查到sql server有支援一個"Bulk Insert"的語法 : : 但這個語法必須具有admin身份才能執行,而且吃的資料來源是文字檔, : : 也綁著sqlserver,不靈活。 : : 我也發現DataAdapter中有支援BatchUpdate的語法 : : 但它看起來是少送給server n次的insert指令 : : 其實在sql server上,它本質上還是用分號隔開的sql的效能相同 : : 還不如乾脆分號串起來一次送 (if總字量不過很大的話) : : 微軟真正建議要大量insert的話,是透過dts或bcp等外掛程式 : : 其中網友認為bcp程式是效能最好的。 : : 綜合以上,假如你insert的筆數在千筆以下,乾脆分號串起來比較快 : : 萬筆以上的話,就用bcp較好。 : : 我研究過這些方式都不夠讓我覺得靈活及輕巧 : : 所以還是先等等,等微軟做出更好的東西囉! : 我的看法也差不多… : 當一定要用程式做即時的大批insert時, : 用分號串起來送應該是唯一的方法, : 另外如果筆數真的太多,建議可以用迴圈, : 串100筆insert送一次,並commit一次。 : 例如1000筆資料,就是分10次送完。 想問各位大大喔, 那如果今天我的SQL語法是利用sqlCommand來建立SQL語法, 並且利用sqlCommand1.Parameters.AddWithValue來存入新增資料 然後執行sqlCommand1.ExecuteNonQuery(); 我想改成批量新增但是因為我要存入的值是用參數的形式存的 我應該怎麼改比較適當呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.127.22.18
文章代碼(AID): #162K1Bhe (C_Sharp)
文章代碼(AID): #162K1Bhe (C_Sharp)