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 } } 有人能看到我在哪里错了吗? 非常感谢! 解决方法
看起来你一遍又一遍地添加命令的参数集合.每次迭代都清除它.
我还建议抛出实际的异常,这样你就可以看到问题所在. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |