使用c#在一个单行数据库中保存多个checkedlistbox值

时间:2015-08-04 12:47:29

标签: c# postgresql

是否可以在数据库中的一个单元格中存储多个值? 根据列famcon下面的图片,即使用户选择了多个值,也只能插入checkedlistbox中的一个值。

这是我对此表的查询:

foreach (DataRowView item in this.checkedListBox1.CheckedItems)
            {
                NpgsqlCommand cmd = new NpgsqlCommand("Insert into name (eid, name, famcon) SELECT @eid, @name, @famcon", conn);
                cmd.Parameters.AddWithValue("@eid", textBox1.Text);
                cmd.Parameters.AddWithValue("@name", textBox2.Text);
                string[] value = item.Row[0].ToString().Split(',');
                cmd.Parameters.AddWithValue("@famcon", value);

                cmd.ExecuteNonQuery();
            }

enter image description here

2 个答案:

答案 0 :(得分:0)

您没有将string[] value的元素添加到您的字段中。尝试:

string[] value = item.Row[0].ToString().Split(',');
string insert="";
foreach (string s in value)
{
  insert=" "+s;
}    
cmd.Parameters.AddWithValue("@famcon", insert);

答案 1 :(得分:0)

您可以使用bitset类型,它在字符串中设置位置标记。

每个位代表一个单独的值,但你必须保持位和值之间的链接 - 即哪个位是哪个。

或者,空格或逗号分隔的字符串有效。每个字符串都是一个人类可读的代码,代表一个值。您必须解析字符串,但它比位值更容易阅读。