我想插入一個對象列表到sql server表中。但是,目前,我必須在每次插入記錄行時打開和關閉sql連接。將對象列表插入到SQL Server表中
我只是想知道是否有一種方法可以一次插入記錄列表中的所有對象?這是代碼片段。
public void InsertDataToDb()
{
string connectionString = ConfigurationManager.ConnectionStrings["connection"].ConnectionString;
var records = GetRecords();
using (SqlConnection conn = new SqlConnection(connectionString))
{
SqlCommand cmd =
new SqlCommand(
"INSERT INTO TableName (param1, param2, param3) VALUES (@param1, @param2, @param3)");
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;
foreach (var item in records)
{
cmd.Parameters.AddWithValue("@param1", item.param1);
cmd.Parameters.AddWithValue("@param2", item.param2);
cmd.Parameters.AddWithValue("@param3", item.param3);
conn.Open();
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
conn.Close();
}
}
}
你可以一個查詢中添加多行。只要確保參數是唯一的。 –
另一種方法是創建一個帶表值參數的存儲過程 –
@JeroenvanLangen但是如果我在列表中有100條記錄,我該如何逐個添加? – catlovespurple