gpt4 book ai didi

c# - ExecuteNonQuery 内循环

转载 作者:太空狗 更新时间:2023-10-29 19:57:23 27 4
gpt4 key购买 nike

我正在尝试在 C# 中的循环内插入一条数据库记录。

当我像这样对值进行硬编码时它会起作用:

    string query3 = "INSERT INTO furniture (room_id,member_id) VALUES (222,333);";
SqlCommand cmd3 = new SqlCommand(query3, sqlConnection3);
sqlConnection3.Open();

for (int i = 0; i < arrItemsPlanner.Length; i++)
{
try
{
cmd3.ExecuteNonQuery();
}
catch
{
return "Error: Item could not be saved";
}
finally
{
//Fail
}
}

但是当我使用参数化查询时它不起作用 - 即使我像这样将一个值硬编码到参数化查询中:

    string query3 = "INSERT INTO furniture (room_id,member_id) VALUES (@room_id,333);";
SqlCommand cmd3 = new SqlCommand(query3, sqlConnection3);
sqlConnection3.Open();

for (int i = 0; i < arrItemsPlanner.Length; i++)
{
try
{
cmd3.Parameters.Add("@room_id", System.Data.SqlDbType.Int);
cmd3.Parameters["@room_id"].Value = 222;
cmd3.ExecuteNonQuery();
}
catch
{
return "Error: Item could not be saved";
}
finally
{
//Fail
}
}

谁能看出我哪里出错了?

非常感谢!

最佳答案

经过测试且简单的解决方案。如果在循环中使用参数您需要在执行查询后清除参数。所以你可以使用它

cmd3.executeNonQuery();
cmd3.Parameters.Clear();

关于c# - ExecuteNonQuery 内循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8747066/

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