用于C#的Postgre SQL参数化查询

时间:2017-08-14 15:17:15

标签: c# postgresql

我正在尝试在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名称与值分开,但我不知道如何。有人可以帮忙吗?感谢。

1 个答案:

答案 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();
 }