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

感谢

有帮助吗?

解决方案

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

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

List<string> values = new List<string>();
if (cbComma.Checked) {
   values.Add("','");
}
...
string result = values.ToArray().Join(",");

其他提示

如果您能保存价值,我同意 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()。加入(&quot;,&quot;);在SaveData()和LoadData()中只需使dbVal成为List,语法不需要更改。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top