【发布时间】:2015-08-04 12:47:28
【问题描述】:
是否可以在数据库的一个单元格中存储多个值?
根据下图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();
}
【问题讨论】:
-
您有 2 个解决方案:1) 将所有 CheckedListBox Checked 值存储为字符串(如果项目数低于 32,则存储为整数)。 2) 创建一个辅助表来为每条记录存储一个值,外键引用表的主键 (eid)。
-
@Graffito 我应该在查询中使用 INSERT..SELECT 吗?
-
获取数据库服务器分配的AutoIncrement值的SQL语句不同。你用的是什么数据库?
-
我正在使用 postgresql 数据库
-
还将 ExecuteNonQuery() 替换为 ExecuteScalar() 并将结果转换为 int。
标签: c# postgresql