我正在使用 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().Join(", "); 在 SaveData() 和 LoadData() 中,只需将 dbVal 设置为 List 并且不需要更改语法。