gpt4 book ai didi

c# - 插入多对多数据库?

转载 作者:太空宇宙 更新时间:2023-11-03 13:25:43 26 4
gpt4 key购买 nike

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

现在我的应用程序是 C# 中的 Windows 桌面应用程序,我有一个简单的表单,其中有 5 个文本框和一个按钮,这就是它的样子:

enter image description here

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

现在按添加,我想在表 tblTicketDetail 中输入 DatePhone Number 的值以及 EngineerID 的值表 tblTicket_Engineer 中的 1EngineerID 2EngineerID 3。表 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 中的外键并告诉我外键是否正确。

enter image description here

tblTicket_Engineer表中一次输入3行应该怎么做?当我按下添加按钮时,这就是我希望在 tblTicket_Engineer 中发生的情况(对于此图像,值是手动输入的)

enter image description here

最佳答案

您可以使用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();

关于c# - 插入多对多数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22525754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com