我正在尝试在C#中为Postgre创建参数化的commad。我的目标是将字符串列表写入DB表。
List<string> list = new List<string> { "listItem1", "listItem2", "listItem3" };
command.CommandText = "INSERT INTO table (item) VALUES (@ListItem);";
foreach (var item in list)
{
command.Parameters.AddWithValue("ListItem", item);
command.ExecuteNonQuery();
}
此代码将以db表中写入的listItem1完成三次。我想我需要将Paramater名称与值分开,但我不知道如何。有人可以帮忙吗?感谢。
答案 0 :(得分:0)
AddWithValue
在每次迭代上添加新 parapeter。您应该只声明参数一次:
List<string> list = new List<string> {
"listItem1", "listItem2", "listItem3" };
command.CommandText = "INSERT INTO table (item) VALUES (@ListItem);";
// Declare parameter once ...
//TODO: specify parameter's value type as a second argument
command.Parameters.Add("@ListItem");
foreach (var item in list) {
// ...use many
command.Parameters[0].Value = item;
command.ExecuteNonQuery();
}