gpt4 book ai didi

c# - 使用 QueryCommand 对象批量插入

转载 作者:行者123 更新时间:2023-11-30 16:06:44 25 4
gpt4 key购买 nike

是否有关于如何使用 QueryCommand 在数据库中批量插入的任何教程。这是我现在正在使用的代码:

QueryCommand cmd = conn.CreateCommand();            
try
{
foreach (MyObj obj in list)
{
cmd.Parameters.Clear();
cmd.CommandText = "INSERT INTO " + MY_TABLE + " (name, type) VALUES (?,?)";
cmd.Parameters.Add("@name", OdbcType.VarChar).Value = obj.name != null ? obj.name : DBNull.Value.ToString();
cmd.Parameters.Add("@type", OdbcType.VarChar).Value = obj.type != null ? obj.type.ToString() : DBNull.Value.ToString();

cmd.ExecuteNonQuery();
}
}

这是正确的做法吗?
它是否为每次迭代触发单独的查询?

最佳答案

您可以使用SqlBulkCopy

这是一个简单的 SqlBulkCopy 代码示例:

using System.Data.SqlClient;

DataTable table = new DataTable("States");
// construct DataTable
table.Columns.Add(new DataColumn("id_state", typeof(int)));
table.Columns.Add(new DataColumn("state_name", typeof(string)));

// note: if "id_state" is defined as an identity column in your DB,
// row values for that column will be ignored during the bulk copy
table.Rows.Add("1", "Atlanta");
table.Rows.Add("2", "Chicago");
table.Rows.Add("3", "Springfield");

using(SqlBulkCopy bulkCopy = new SqlBulkCopy(connectionString))
{
bulkCopy.BulkCopyTimeout = 600; // in seconds
bulkCopy.DestinationTableName = "state";
bulkCopy.WriteToServer(table);
}

关于c# - 使用 QueryCommand 对象批量插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31824899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com