伙计们,我正在尝试学习多对多关系数据库,但是在“链接/连接”表中插入数据时遇到了麻烦。
这是我的数据库的样子:


现在,由于我的应用程序是C#中的Windows桌面应用程序,因此我有一个简单的Form,其中有5个文本框和一个按钮,看起来就像这样:



注意:图像2-红色代表带有.Text的文本框名称,蓝色代表我将输入的数据类型。表tblEngineer中已经存在EngineerID 1、2和3。

现在,按添加时,我想在表Date中输入Phone NumbertblTicketDetail的值,并在表EngineerID 1中输入EngineerID 2EngineerID 3tblTicket_Engineer的值。表tblEngineer中已经有一些行。

现在,如果我只在tblTicket_Engineer中输入一个EngineerID,我将在“添加”按钮的单击事件中执行此操作:

        string statement = "INSERT INTO tblTicketDetail(IssueDate,Number) VALUES(@text1,@text2);SELECT SCOPE_IDENTITY()";
        using (SqlCommand command = new SqlCommand(statement))
        using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["ST"].ConnectionString.ToString()))
        {

                command.Parameters.AddWithValue("@text1", textBox1.Text);
                command.Parameters.AddWithValue("@text2", textBox2.Text);
                connection.Open();
                command.Connection = connection;
                ID = command.ExecuteScalar().ToString();
                connection.Close();
        }

        string statement1 = "INSERT INTO tblTicket_Engineer(ID,EID) VALUES(@text1,@text3)";
        using (SqlCommand command1 = new SqlCommand(statement1))
        using (SqlConnection connection1 = new SqlConnection(ConfigurationManager.ConnectionStrings["ST"].ConnectionString.ToString()))
        {

            command1.Parameters.AddWithValue("@text1", ID);
            command1.Parameters.AddWithValue("@text3", textBox3.Text);
            connection1.Open();
            command1.Connection = connection1;
            command1.ExecuteNonQuery();
            connection1.Close();
        }


查看表tblTicket_Engineer中的外键,并告诉我我的外键是否正确。



如何在表tblTicket_Engineer中一次输入3行?
这就是我按下添加按钮时想要在tblTicket_Engineer中发生的情况(对于此图像,值是手动输入的)

最佳答案

您可以使用UNION ALL。尝试这样的事情:

        string statement1 = @"INSERT INTO tblTicket_Engineer(TicketID,EngineerID)
                        SELECT @ID,@EID1 UNION ALL
                        SELECT @ID,@EID2 UNION ALL
                        SELECT @ID,@EID3";
        using (SqlCommand command1 = new SqlCommand(statement1))
        using (SqlConnection connection1 = new SqlConnection(ConfigurationManager.ConnectionStrings["ST"].ConnectionString.ToString()))
        {

            command1.Parameters.AddWithValue("@ID", PID);
            command1.Parameters.AddWithValue("@EID1", comboBox1.SelectedValue);
            command1.Parameters.AddWithValue("@EID2", comboBox2.SelectedValue);
            command1.Parameters.AddWithValue("@EID3", comboBox3.SelectedValue);
            connection1.Open();
            command1.Connection = connection1;
            command1.ExecuteNonQuery();
            connection1.Close();

10-08 05:36