Fahim ullah Ответов: 3

Как хранить и извлекать несколько флажков в одном столбце базы данных на языке C#


У меня есть 12 чекбоксов текст чекбокса-это название месяцев,например январь,февраль, март.....
я хочу, чтобы при некоторых из этих флажков было установлено значение text store в одном столбце, а затем получить его, если идентификатор пользователя будет искать снова.

мой код базы данных
using (DbSQLServer db = new DbSQLServer(AppSetting.ConnectionString()))
{
    db.SaveOrUpdateRecord("Fee_Details", GetData());
}

а затем установите значения в функции GetData
private MonthlyFeeStractures GetData()
       {
           MonthlyFeeStractures feeRecord = new MonthlyFeeStractures();
           feeRecord.StudentName = StudentNameLbl.Text;
           feeRecord.FatherName = FatherName.Text;
           feeRecord.RegistrationNumber = RegistrationTextBox.Text;
           feeRecord.ClassOfAdmission = FindStudentComboBox.Text;
           feeRecord.DateOfPay = FeePaymentDateDateTimePicker.Value;
           feeRecord.PaymentType = PaymentTypeComboBox.Text;
           feeRecord.FeeMonth = checkboxdata();
           feeRecord.Fee = FeeLabel.Text;
           feeRecord.Dues = DuesLabel.Text;
           feeRecord.Quantity = Convert.ToInt32(QuantityLabel.Text);
           feeRecord.TotalPayment = TotalAmountLabel.Text;
           feeRecord.Discount = DiscountTextBox.Text;
           feeRecord.PayBy = PaidByTextBox.Text;
           feeRecord.PromotionFee = PromoFeeTextBox.Text;
           feeRecord.PromotionFee = PromoClassCmoboBox.Text;
           feeRecord.ReceiptNumber = ReceiptNumberLabel.Text;

           return feeRecord;
       }


Другие данные хранятся правильно, но имя флажка не хранится, и когда я отлаживаю это
feeRecord.FeeMonth = checkboxdata();

функция возвращает юдоли, но имеет значение null

Что я уже пробовал:

private string checkboxdata()
        {
            string s =Convert.ToString(0);
            foreach (Control c in MonthlyFee.Controls)
            {                            
                     CheckBox cb = c as CheckBox;
                    if (cb.Checked)
                    {
                        s = cb.Text ;
                    }                
            }
            return s;
            
        }

BillWoodruff

какая база данных ?

3 Ответов

Рейтинг:
2

Patrice T

Цитата:
Как хранить и извлекать несколько флажков в одном столбце базы данных на языке C#

У вас есть в основном 3 решения:
- используйте 1 поле на каждое значение
- используйте 1 строку на каждое значение
- объединить все флажки в 1 значение
ваш выбор.

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


Рейтинг:
2

BillWoodruff

Без более подробной информации я не могу быть более конкретным, но это должно дать вам некоторые идеи:

StringBuilder sb = new StringBuilder();

foreach (CheckBox ckbx in MonthlyFee.Controls
    .OfType<CheckBox>()
    .Where(cbx => cbx.Checked))
{
    sb.AppendLine(ckbx.Name);
}

string checkedmonths = sb.ToString();


Рейтинг:
2

Gerry Schmitz

Напишите какой-нибудь код базы данных, который делает что-то с "s" ... а затем возвращайтесь с новыми вопросами.


BillWoodruff

Мой голос № 1: это не решение, это оскорбительное замечание.