【发布时间】:2020-08-31 12:18:08
【问题描述】:
当我尝试一次将多个 listview 项插入 SQL 数据库时遇到问题。我想使用StringBuilder 来实现这一点。例如,我想附加下面的项目代码和项目名称,并只保存在数据库中的一行中,即 001 = 面包,002 = 肉馅饼等...
商品代码 - 001、002、003、004、005
商品名称 - 面包、肉饼、鱼卷、蛋卷、甜甜圈
这样,在我单击“保存”按钮后,所有“项目名称”字符串数据将存储在数据库中的一行中。下面是我的代码
foreach (ListViewItem i in listView1.Items)
{
StringBuilder sb = new StringBuilder();
sb.Append("INSERT INTO Snack (Item code, Itemname)");
sb.Append(" VALUES (@d1, @d2)");
SqlCommand cmd = new SqlCommand(sb.ToString(), con);
{
cmd.Parameters.AddWithValue("@d1", i.SubItems[0].Text);
cmd.Parameters.AddWithValue("@d2", i.SubItems[1].Text);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
【问题讨论】:
-
那么...您遇到了什么问题?我不明白具体需要解决什么问题。
-
你是说你想用逗号加入所有的项目吗?你是指所有的子项目还是别的什么?
-
您是否要将逗号分隔的值列表存储到列中?这是一个非常糟糕的数据库设计决策,只会给您带来永远的问题。
-
对于您显示的代码,您不需要 StringBuilder。
-
我无法理解您的列表视图的外观,而且我不明白“001 = Bread”之类的意思。是要将所有 listView1.Items 保存在一条记录中,还是要按 SubItem[0] 分组,然后将具有相同项目代码的所有 SubItem[1] 写入一条记录?
标签: c# sql sql-server ado.net