Сохранение значений элемента управления CheckBox - PullRequest
0 голосов
/ 09 января 2009

Я использую asp.net и пытаюсь сохранить значения флажков в базе данных. Несколько флажков могут быть введены в одно и то же поле в базе данных. Так, например, у меня есть два флажка с именами «Запятая» и «Дефис», и если пользователь проверяет оба из них, то база данных будет хранить значения «,», «-». Как ты это делаешь?

спасибо

Ответы [ 2 ]

1 голос
/ 09 января 2009

Чтобы сохранить несколько значений в одном столбце, я бы рекомендовал использовать перечисление флагов. Вот пример кода с использованием флажков .

Если вам действительно нужно сохранить значения в формате, разделенном запятыми, попробуйте что-то вроде этого:

List<string> values = new List<string>();
if (cbComma.Checked) {
   values.Add("','");
}
...
string result = values.ToArray().Join(",");
0 голосов
/ 09 января 2009

Я бы согласился с рекомендацией Дэвида Томаса Гарсии, если вы можете сохранить значение в базе данных, используя перечисление (в виде целого числа или любого другого, подходящего для количества вариантов, которые у вас будут).

Если это не вариант, и вы обязаны хранить их в базе данных в виде строки символов, я бы сделал что-то вроде следующего:


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.
}

Обратите внимание, что это не включает никакого разделения значений, которые будут сохранены в значении, хранящемся в базе данных, но если вам нужно, вы можете использовать Список и делать то, что Дэвид Томас Гарсия упомянул вместе с .ToArray () Join ( ""). в SaveData () и в LoadData () просто сделайте dbVal списком, и синтаксис не нуждается в изменении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...