在C#中,使用DataTable數據插入有多種策略。以下是一些常用的方法:
string connectionString = "your_connection_string";
string query = "SELECT * FROM your_table";
using (SqlConnection con = new SqlConnection(connectionString))
{
con.Open();
using (SqlDataAdapter da = new SqlDataAdapter(query, con))
{
DataTable dt = new DataTable();
da.Fill(dt);
using (SqlCommandBuilder cb = new SqlCommandBuilder(da))
{
foreach (DataRow row in dt.Rows)
{
cb.Update(row);
}
}
}
}
string connectionString = "your_connection_string";
string tableName = "your_table";
using (SqlConnection con = new SqlConnection(connectionString))
{
con.Open();
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(tableName, con))
{
bulkCopy.ColumnMappings.Add("column1", "column1");
bulkCopy.ColumnMappings.Add("column2", "column2");
// 添加更多列映射
DataTable dt = new DataTable();
// 填充DataTable
bulkCopy.WriteToServer(dt);
}
}
using (var context = new YourDbContext())
{
foreach (DataRow row in dt.Rows)
{
var entity = new YourEntity
{
Column1 = row["column1"].ToString(),
Column2 = row["column2"].ToString()
// 設置更多屬性
};
context.YourEntities.Add(entity);
}
context.SaveChanges();
}
這些策略各有優缺點,選擇哪種策略取決于你的具體需求和場景。例如,如果你需要處理大量數據并且對性能有較高要求,那么使用SqlBulkCopy可能是最佳選擇。如果你需要與數據庫進行更復雜的交互,例如更新或刪除記錄,那么使用Entity Framework可能更方便。