如何一次单击添加多条记录?

时间:2019-04-11 17:33:32

标签: c# ms-access visual-studio-2017

我正在Visual Studio 2017(C#)中为一家美术协会编写新软件的编程,以帮助他们注册即将参加比赛的学生的详细信息。我做了这样的Windows表单:form 在文本框,组合框和日期时间选择器中输入详细信息detail后单击添加按钮时,必须按如下所示更新数据网格视图:The date of program and participating item of the participant must be entered in the table as four records each for each date and item without changing other details.。这段代码

private void button1_Click(object sender, EventArgs e)
    {
        if(pARTICIPATING_ITEMComboBox.Text != "--")
        {
            rEG_IDTableAdapter.Insert(nAME_OF_PARTICIPANTTextBox.Text, cLASSTextBox.Text, sCHOOL_NAMETextBox.Text, pHONE_NUMBER_OF_PARENTTextBox.Text, Convert.ToDateTime(dATE_OF_PROGRAMDateTimePicker.Text), pARTICIPATING_ITEMComboBox.Text, " ", " ");
        };
        if (comboBox1.Text != "--")
        {
            rEG_IDTableAdapter.Insert(nAME_OF_PARTICIPANTTextBox.Text, cLASSTextBox.Text, sCHOOL_NAMETextBox.Text, pHONE_NUMBER_OF_PARENTTextBox.Text, Convert.ToDateTime(dateTimePicker1.Text), comboBox1.Text, " ", " ");
        };
        if (comboBox2.Text != "--")
        {
            rEG_IDTableAdapter.Insert(nAME_OF_PARTICIPANTTextBox.Text, cLASSTextBox.Text, sCHOOL_NAMETextBox.Text, pHONE_NUMBER_OF_PARENTTextBox.Text, Convert.ToDateTime(dateTimePicker2.Text), comboBox2.Text, " ", " ");
        };
        if (comboBox3.Text != "--")
        {
            rEG_IDTableAdapter.Insert(nAME_OF_PARTICIPANTTextBox.Text, cLASSTextBox.Text, sCHOOL_NAMETextBox.Text, pHONE_NUMBER_OF_PARENTTextBox.Text, Convert.ToDateTime(dateTimePicker3.Text), comboBox3.Text, " ", " ");
        };

但是这并没有如我所愿。相反,它输入了详细信息:注册号,参与者名称,班级,学校名称,父母的电话号码以及第一日期和第一列,类似于this,即在第二,第三和第四日期和项目中输入了其他详细信息列未进入数据网格视图

  

注意:   该数据库是在Access 2016中创建的,并已插入到表单中

1 个答案:

答案 0 :(得分:0)

首先,如果条件类似,则应该仅为1

if(condition1 && condition2 && condition3)
{
   insert(...);
   insert(...);
   ...
}

您使用4个组合框来收集相同的参与项目。相反,您可以使用组合框选择项目,并使用列表框将选定的项目传递给它。之后,可以使用foreach循环将列表框项添加到db。

它看起来应该像

private void button1_Click(object sender, EventArgs e)
{
    foreach(item in listbox.items)
    {
        insert(name.text,class.text,item.text,......);
    }
}

另外,最好将此表分为2个单独的表。有关详细信息,您可以检查here