從 Excel 導入 DataGridView,需將數萬行數據高效寫入 SQL Server 表 AAAie。
using (SqlConnection conn = new SqlConnection(connStr)) {
conn.Open();
using (SqlBulkCopy bulk = new SqlBulkCopy(conn)) {
bulk.DestinationTableName = "AAAie";
// 列映射(可選,若列名一致可省略)
bulk.ColumnMappings.Add("Col1", "DbCol1");
bulk.ColumnMappings.Add("Col2", "DbCol2");
// DataGridView 數據轉 DataTable
DataTable dt = new DataTable();
foreach (DataGridViewColumn col in dgv.Columns)
dt.Columns.Add(col.Name, col.ValueType ?? typeof(string));
foreach (DataGridViewRow row in dgv.Rows) {
if (!row.IsNewRow) {
DataRow dr = dt.NewRow();
foreach (DataGridViewCell cell in row.Cells)
dr[cell.ColumnIndex] = cell.Value;
dt.Rows.Add(dr);
}
}
bulk.WriteToServer(dt); // 批量寫入
}
}
INSERT 快 10-100 倍