我正在使用asp.net,我正在尝试将复选框值保存到数据库中。可以在数据库的同一字段中输入多个复选框。因此,例如,我有两个名称为“逗号”和“连字符”的复选框,如果用户同时检查这两个复选框,则数据库将存储值',',' - '。你是怎么做到的?
感谢
答案 0 :(得分:1)
要将多个值保存到同一列,我建议使用标志枚举。这是code sample using checkboxes。
如果您真的必须以逗号分隔的格式存储值,可以尝试这样的事情:
List<string> values = new List<string>();
if (cbComma.Checked) {
values.Add("','");
}
...
string result = values.ToArray().Join(",");
答案 1 :(得分:0)
如果您可以使用枚举将值保存到数据库(作为int或适用于您将拥有的选项数量的任何内容),我同意David Thomas Garcia's建议。
如果这不是一个选项,并且您必须将它们作为字符串存储在数据库中,我会执行以下操作:
private void LoadData()
{
string dbVal = DataAccess.GetDbVal(); //Get your value from the database.
chkComma.Checked = dbVal.Contains(",");
chkDash.Checked = dbVal.Contains("-");
}
private void SaveData()
{
string dbVal = "";
if(chkComma.Checked)
dbVal += ",";
if(chkDash.Checked)
dbVal += "-";
DataAccess.SaveDbVal(dbVal); //Send the value of dbVal to your data layer to be saved.
}
请注意,这不包括要保存在数据库中存储的值中的值的任何分隔,但是如果需要,可以使用List并执行。{Too}所提到的David Thomas Garcia。 。加入(”,”);在SaveData()和LoadData()中只需使dbVal成为List,语法不需要更改。