gpt4 book ai didi

C# SQL 插入命令

转载 作者:太空狗 更新时间:2023-10-29 20:42:39 26 4
gpt4 key购买 nike

谁能告诉我以下两种插入记录的方式可以带来更好的性能?

案例一

SqlCommand cmd = new SqlCommand();

for (int i = 0; i < 10000; i++)
{
cmd = new SqlCommand("insert into test(id, name) value('" + i + "', '" + i + "')");
cmd.ExecuteNonQuery();
}

案例二

string sql = null;

for (int i = 0; i < 10000; i++)
{
sql += "insert into test(id, name) value('" + i + "', '" + i + "')";
}

SqlCommand cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();

最佳答案

首先:停止将您的 SQL 代码连接在一起!这是对各地黑客的邀请用SQL注入(inject)攻击你!请改用参数化查询!

我会使用这个解决方案:创建一个带有参数化查询的单个 SqlCommand,然后执行它:

string stmt = "INSERT INTO dbo.Test(id, name) VALUES(@ID, @Name)";

SqlCommand cmd = new SqlCommand(smt, _connection);
cmd.Parameters.Add("@ID", SqlDbType.Int);
cmd.Parameters.Add("@Name", SqlDbType.VarChar, 100);

for (int i = 0; i < 10000; i++)
{
cmd.Parameters["@ID"].Value = i;
cmd.Parameters["@Name"].Value = i.ToString();

cmd.ExecuteNonQuery();
}

或使用 SqlBulkCopy,尤其是当您要插入超过 10,000 行时。

关于C# SQL 插入命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8218867/

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