加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 内部循环中的ExecuteNonQuery

发布时间:2020-12-15 18:12:49 所属栏目:百科 来源:网络整理
导读:我正在尝试在C#中的循环中插入数据库记录. 它在我硬编码这样的值时起作用: string query3 = "INSERT INTO furniture (room_id,member_id) VALUES (222,333);"; SqlCommand cmd3 = new SqlCommand(query3,sqlConnection3); sqlConnection3.Open(); for (int
我正在尝试在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,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
            }
        }

有人能看到我在哪里错了吗?

非常感谢!

解决方法

看起来你一遍又一遍地添加命令的参数集合.每次迭代都清除它.

我还建议抛出实际的异常,这样你就可以看到问题所在.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读