2011-12-09 16 views
2

私は、データベースのテーブルからいくつかの外部フィールドを追加してdataTableを少し変えました。これらの行を行内にループせずに挿入する方法はありますか?dataTableの行をデータベースに挿入する簡単な方法

私のデータテーブルがデータベーステーブルと同じであれば、すばやく挿入できますか?

答えて

0

はい、あなたはコード

using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConsoleApplication3.Properties.Settings.daasConnectionString"].ConnectionString)) 
{ 
    cn.Open(); 

    using (SqlBulkCopy copy = new SqlBulkCopy(cn)) 
    { 
    copy.ColumnMappings.Add(0, 0); 
    copy.ColumnMappings.Add(1, 1); 
    copy.ColumnMappings.Add(2, 2); 
    copy.ColumnMappings.Add(3, 3); 
    copy.ColumnMappings.Add(4, 4); 

    copy.DestinationTableName = "tNorthwind"; 

    copy.WriteToServer(dt); 
    } 
} 

http://www.codeproject.com/KB/database/DataTableToDataBase.aspx

の下に使用してこれを行うことができます
0

スキーマが同じであるかどうか不明です。それらがあれば、単にアダプタを作成して更新を呼び出すことができます。 ODBCを使用した例...

public void Update(DataTable table) 
{ 
OdbcConnection connection = new OdbcConnection(...); 
OdbcDataAdapter adapter = new OdbcDataAdapter("SELECT * FROM TABLENAME", connection); 

OdbcCommandBuilder builder = new OdbcCommandBuilder(adapter); 
adapter.UpdateCommand = builder.GetUpdateCommand(); 
adapter.InsertCommand = builder.GetInsertCommand(); 
adapter.DeleteCommand = builder.GetDeleteCommand(); 

adapter.Update(table); 
} 
関連する問題