Автоматические нулевые значения в базе данных, если текстовое поле пусто - PullRequest
0 голосов
/ 14 ноября 2018

Я хочу иметь null values в своей таблице, когда пользователь оставил textbox пустым. Я делаю это с массивом и цикл for:

private void AddQuestion()
{
    string [] checkinput= new string[] { txtBxQuestionCat.Text, txBxQuestion.Text }; 
    string[] countinput= new string[2]; 

    if (String.IsNullOrEmpty(txtBxQuestionCat.Text) && String.IsNullOrEmpty(txBxQuestion.Text))

    {   
        ExceptiesException ex = new ExceptiesException("error");
        throw ex;
    }

    for (int i = 0; i < countinput.Length; i++) 
    {
        if (checkinput[i] == "") 
        {
            countinput[i] = null; 
        }
    }

    try
    {   
        qa = new HR5DataSetTableAdapters.QueriesTableAdapter();
        qa.AddQuestion(countinput[0], countinput[1]);


        hR5DataSetQuestionTableAdapter.Fill(hR5DataSet.question);

        questionViewSource1.View.MoveCurrentToLast();
        MessageBox.Show("add complete");
    }
    catch (SqlException ex) 
    {
        MessageBox.Show(ex.Message); 
    }
}

Это должно работать, но когда я добавляю questioncat и question и загружаю его в мои datagrid, новые questioncat и question не добавляются в базу данных, только новый QuestionId. Я думаю, это потому, что я говорю countinput[i] = null, но я не знаю, как я мог бы также сказать, что значения должны быть null, если de textboxes пусто.

1 Ответ

0 голосов
/ 14 ноября 2018

Вам не нужна переменная countinput.Измените цикл for после проверки «оба пустых» на

for (int i = 0; i < checkinput.Length; i++) 
    if (checkinput[i] == "") 
        checkinput[i] = null; 

, а затем добавьте вопрос с помощью

qa.AddQuestion(checkinput[0], checkinput[1]);

В настоящее время вы всегда вводите нулевые значения и игнорируете ввод пользователя.

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