如果文本框为空,则数据库中的自动空值

时间:2018-11-14 10:37:42

标签: c# sql arrays database

当用户将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); 
    }
}

这应该可以工作,但是当我添加questioncatquestion并将其加载到我的datagrid中时,新的questioncat和{{1} }尚未添加到数据库,仅添加了新的question。我认为这是因为我说QuestionId,但是我不知道如果de countinput[i] = null为空,值也必须为null

1 个答案:

答案 0 :(得分:0)

您不需要countinput变量。在“全部为空”检查后将for循环更改为

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

然后添加问题

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

当前,您总是输入空值,而忽略用户输入。