Tableのコピー方法
2014年11月13日
15:45
SqlBulkCopyを用いたテーブルの一括コピー

private void button1_Click(object sender, EventArgs e)//BK_1に保存
{
//待機状態
Cursor.Current = Cursors.WaitCursor;
//BK_1に保存のデータの消去
string connectionStringBK_1 = @"Data Source=itmaps12\itmaps12;
Initial Catalog=ConfulBK;Integrated Security=True;Pooling=False";
using (SqlConnection sourceConnectionBK_1 = new SqlConnection
(connectionStringBK_1))
{
sourceConnectionBK_1.Open();
SqlCommand commandDeleteBK_1 = new SqlCommand("DELETE FROM
BK_1;", sourceConnectionBK_1);
//消去の実行 戻り値は処理行数
int rowcount = commandDeleteBK_1.ExecuteNonQuery();
//MessageBox.Show(rowcount.ToString() + "行を削除しました");
sourceConnectionBK_1.Close();
}
//テーブルSheet1$からのデータのBK_1へのコピー
string connectionStringSource = @"Data Source=itmaps12\itmaps12;Initial
Catalog=Conful;Integrated Security=True;Pooling=False";
using (SqlConnection sourceConnectionSource = new SqlConnection
(connectionStringSource))
{
sourceConnectionSource.Open();
SqlCommand commandSourceCopy = new SqlCommand("SELECT * FROM
Sheet1$;", sourceConnectionSource);
SqlDataReader reader = commandSourceCopy.ExecuteReader();
//string connectionStringBK_1 = @"Data Source=itmaps12\itmaps12;Initial
Catalog=ConfulBK;Integrated Security=True;Pooling=False";
using (SqlConnection sourceConnectionBK_1 = new SqlConnection
(connectionStringBK_1))
{
sourceConnectionBK_1.Open();
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sourceConnectionBK_1))
{
bulkCopy.DestinationTableName = "BK_1";
try
{
bulkCopy.WriteToServer(reader);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
reader.Close();
}
}
sourceConnectionBK_1.Close();
}
sourceConnectionSource.Close();
}
//BK_Recへのバックアップの記録の保存
//空の新規レコードをデータセットに作成
DataRow anyRow = this.confulBKDataSet.BK_Rec.NewRow();
anyRow[1] = DateTime.Now;//バックアップ日時 smaledatetime 1分精度
anyRow[2] = masine_User;//作成者
// anyRow[3] =
this.confulBKDataSet.BK_Rec.Rows.Add(anyRow);
//書込み
this.Validate();
this.bK_RecBindingSource.EndEdit();
this.bK_RecTableAdapter.Update(this.confulBKDataSet);
//元に戻す
Cursor.Current = Cursors.Default;
}



C#/SQL Sec...