0

我正在使用 asp.net,我正在尝试将复选框值保存到数据库中。可以在数据库的同一字段中输入多个复选框。因此,例如,我有两个名为“逗号”和“连字符”的复选框,如果用户同时选中这两个复选框,那么数据库将存储值“,”,“-”。你怎么做到这一点?

谢谢

4

2 回答 2

1

要将多个值保存到同一列中,我建议使用标志枚举。这是一个使用复选框的代码示例

如果您真的必须以逗号分隔的格式存储值,可以尝试这样的操作:

List<string> values = new List<string>();
if (cbComma.Checked) {
   values.Add("','");
}
...
string result = values.ToArray().Join(",");
于 2009-01-09T00:23:11.950 回答
0

如果您可以使用枚举将值保存到数据库中,我会同意David Thomas Garcia 的建议(作为 int 或适合您将拥有的选项数量的任何内容)。

如果这不是一个选项,并且您必须将它们作为字符串存储在数据库中,我会执行以下操作:


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 并执行David Thomas Garcia提到的 .ToArray().Join(", "); 在 SaveData() 和 LoadData() 中,只需将 dbVal 设置为 List 并且不需要更改语法。

于 2009-01-09T01:22:45.420 回答