是否可以在数据库中的一个单元格中存储多个值?
根据列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();
}
答案 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类型,它在字符串中设置位置标记。
每个位代表一个单独的值,但你必须保持位和值之间的链接 - 即哪个位是哪个。
或者,空格或逗号分隔的字符串有效。每个字符串都是一个人类可读的代码,代表一个值。您必须解析字符串,但它比位值更容易阅读。