この記事では、DataTableのデータを一度データライブラリに挿入するC#方法を中心に紹介していますので、興味のある方は学んでみてください。 現在の実際の状況は次のとおりです:
顧客はタイム レコーダー マシンを所有しており、すべての従業員の出勤情報はタイム カード マシンの Access データベースに保存されています。現在、顧客は新しい管理システムを導入しています。 Access データベースのタイムカード データは SQL Server データベースに同期されました。比較的長い期間が経過したため、400,000 件を超えるデータが蓄積されました。
ソフトウェアの機能:
Access データベース ファイルを選択し、ターゲット SQL Server データベースの IP アドレスを入力して、同期を開始します。
実装方法:
1. まず、AccessデータベースからインポートするデータをDataTableに格納します
設定ファイル内のデータベース接続文字列は、Accessデータベースのデータを読み取るメソッドをカプセル化します<connectionStrings>
<add name="oleConStr" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="/>
<add name="sqlConStr" connectionString ="server=tiantiankaixing;database=新建数据库;trusted_connection=sspi"/>
</connectionStrings>
DataTable にターゲットの Access データベースを読み込みます
public static string OleConStr = ConfigurationManager.ConnectionStrings["oleConStr"].ConnectionString ; public static DataTable OleGetDataTable(string sql, string filePath) { string a = OleConStr + filePath; using (OleDbConnection conn = new OleDbConnection(a)) { using (OleDbDataAdapter da = new OleDbDataAdapter(sql, conn)) { try { conn.Open(); DataTable dt = new DataTable(); da.Fill(dt); return dt; } catch (Exception ex) { throw ex; } finally { if (conn.State == ConnectionState.Open) conn.Close(); } } } }
2. SQL Server データを一括挿入するメソッドをカプセル化します
string sql = "select Id,Time from checkinout"; DataTable dt = AcHelper.OleGetDataTable(sql, @"F:\project\tiantiankaixing\admin.mdb");
3. DataTableToSQlServer() メソッドを呼び出して、DataTable にすべてのデータを挿入します
public static void DataTableToSQLServer(DataTable dt,string connectString) { string connectionString = connectString; using (SqlConnection destinationConnection = new SqlConnection(connectionString)) { destinationConnection.Open(); using (SqlBulkCopy bulkCopy = new SqlBulkCopy(destinationConnection)) { try { bulkCopy.DestinationTableName = "checkinout";//要插入的表的表名 bulkCopy.BatchSize = dt.Rows.Count; bulkCopy.ColumnMappings.Add("ID", "ID");//映射字段名 DataTable列名 ,数据库 对应的列名 bulkCopy.ColumnMappings.Add("TIME", "TIME"); bulkCopy.WriteToServer(dt); System.Windows.Forms.MessageBox.Show("插入成功"); } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { } } } }
データベースへのコピー
添付: SqlBulkCopy の簡単な使用法
string localCon = "server=tiantiankaixing;database=Test;trusted_connection=sspi"; Entity.DataTableToSQLServer(dt, localCon);
以上がDataTableのデータをデータベースに一括挿入するC#サンプルコードの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。