C#使用SqlBulkCopy批量更新資料
相關連結:
http://blog.csdn.net/codetian/article/details/2948679
http://msdn.microsoft.com/zh-cn/library/system.data.datacolumn.datatype(v=vs.100).aspx
http://social.msdn.microsoft.com/Forums/sqlserver/en-US/b1dc9091-f6c7-4d36-a937-f2ddcab3de78/sqlbulkcopy-error-the-given-value-of-type-sqldecimal-from-the-data-source-cannot-be-converted-to
例子:
SqlConnection sqlCon = new SqlConnection(sqlConStr);sqlCon.Open();SqlTransaction sqlTran = sqlCon.BeginTransaction(); // 開始事務
SqlBulkCopy sqlBC = new SqlBulkCopy(sqlCon, SqlBulkCopyOptions.Default, sqlTran);sqlBC.DestinationTableName = "SaleInfo";sqlBC.BatchSize = 1;DataTable dtSale = new DataTable();
解答:
查看錶結構後發現C#程式碼中Columns中少了[HWSaleID] 和[ReturnMoney] (程式中沒用到),資料庫中刪除了這2列後程序正常了。
結論:SqlBulkCopy 提交資料不同於Insert語句,DataTable.Columns必須與資料庫中的列完全匹配(包括列數量及資料型別).
相關推薦
C#使用SqlBulkCopy批量更新資料
相關連結: http://blog.csdn.net/codetian/article/details/2948679 http://msdn.microsoft.com/zh-cn/library/system.data.datacolumn.datatype(v=
SqlBulkCopy批量更新數據庫表用例
conn batch map nsa 更新數據 efault copy mapping using using (SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(da.Connection as SqlConnection, SqlBu
SQL之merge into 批量更新資料
轉載:http://www.cnblogs.com/ruiati/archive/2013/01/18/2866017.html Merge關鍵字是一個神奇的DML關鍵字。它在SQL Server 2008被引入,它能將Insert,Update,Dele
SQL之merge into 批量更新資料 Merge關鍵字是一個神奇的DML關鍵字。它在SQL Server 2008被引入,它能將Insert,Update,Delete簡單的併為一句。M
轉載http://www.cnblogs.com/ruiati/archive/2013/01/18/2866017.html Merge關鍵字是一個神奇的DML關鍵字。它在SQL Server 2008被引入,它能將Insert,Up
5.03-mysql批量更新資料的異常
來回測了幾次,複製sql到資料庫執行也沒錯。 導致的原因是:配置資料庫連線時url沒有配置allowMultiQueries=true屬性。 allowMultiQueries:允許多查詢. jdbc:mysql://localhost:3306/database?characte
Java中利用QueryRunner批量更新資料
程式碼如下: package com.accord.test; import java.sql.Connection; import java.sql.PreparedStatement; import java.text.SimpleDateFormat; impo
mysql和Mapper中批量更新資料寫法
mapper寫法: <update id="updateOrderStateByOrderId" parameterType="java.util.List"> update t_replace_order set Forder_state = <f
oracle批量更新資料
#pub_entry變更entryname標識 DECLARE CURSOR entry_cur IS SELECT entryid,entryname FROM pub_entry FOR UPDATE; entry_row entry_cur%ROWTYPE; BEGIN OPEN en
SqlDataAdapter.update結合事務(SqlTransaction)批量更新資料
//此處的程式功能主要是將一個庫中的表資料(源表)更新到另外一個庫中的表資料(目標表) //實現目標表的資料和源表資料一致,已包括增加,更新和刪除資料記錄功能 //主呼叫程式碼塊 SqlConnection conn = new SqlConnection("d
mybatis學習之路----批量更新資料兩種方法效率對比
點滴記載,點滴進步,願自己更上一層樓。 上節探討了批量新增資料,這節探討批量更新資料兩種寫法的效率問題。 實現方式有兩種, 一種用for迴圈通過迴圈傳過來的引數集合,迴圈出N條sql, 另一種 用mysql的case when 條件判斷變相的進行批量更新 下面進行實現
Mysql 一條SQL語句實現批量更新資料,update結合case、when和then的使用案例
如何用一條sql語句實現批量更新?mysql並沒有提供直接的方法來實現批量更新,但是可以用點小技巧來實現。 複製程式碼 程式碼如下: UPDATE mytable SET myfield = CASE id WHEN 1 THEN
ADO.NET大批量更新資料
ADO.NET大批量進行資料更新 public static void SqlBulkUpdate() { DataTable dt = ExcelHelper.ImportExcelFile("d://User1.xls"); //將Excel中的資料匯入到
C# SqlBulkCopy實現大資料插入資料庫
public bool SqlBulkCopyData(DataTable dt) { bool flag = true; if (dt != null && dt.Rows.Count >
Ibatis批量更新資料(mysql資料庫)
protected SqlMapClientTemplate sqlMapClient; public void setSqlMapClient(SqlMapClientTemplate sqlMapClient) { this.sqlMapClient = sqlMapClien
php mysql 批量更新資料
使用原生 sql 批量更新使用者積分資料訂單列表中查出 $list,包含 buy_id , total_money 欄位 $list = [ 0 => ['buyer_id' => 1,'
spring jdbcTemplate批量更新資料
引入了spring框架之後,jdbcTemplate可以直接使用 將jdbcTemplate依賴注入 @Autowired private JdbcTemplate jdbcTemplate; public JdbcTemplate getJdbcTemplate
c# Sqlite批量新增資料
今天遇到了往Sqlite資料庫裡插入1400多條資料的情況,結果每次都需要一兩分鐘才能完成. 搜尋了一下,在這裡找到了解決辦法,所需要的時間直接變成不到2秒! internalstaticvoid FastInsertMany(DbConnection cnn) { us
使用JDBC讀取本地的Excel檔案並批量更新資料
package com.jqgj.test; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; impo
jdbc批量更新資料
有些時候,適合用jdbc。比如讀一個大的excel檔案資料到資料庫 public static List<String> welfareImport(MultipartFile file,String id,String businessType,IWelfa
SqlServer 利用遊標批量更新資料
SqlServer 利用遊標批量更新資料 Intro 遊標在有時候會很有用,在更新一部分不多的資料時,可以很方便的更新資料,不需要再寫一個小工具來做了,直接寫 SQL 就可以了 Sample 下面來看一個實際示例: -- 宣告欄位變數 DECLARE @RegionCode INT; DECLARE @Reg