gpt4 book ai didi

c# - INSERT,以及如何将 INSERT 插入到多个表中

转载 作者:太空宇宙 更新时间:2023-11-03 12:23:11 27 4
gpt4 key购买 nike

所以我有这个表格: http://i.imgur.com/vZYssQy.png

现在 IDFirst NameLast NameDOBAddressPhone NumberPost Code 文本框应该插入到名为 person 的表中(这有效,它会插入)

我的代码是:

public static void insertStudent(int personId, string firstName, string lastName, string DOB, int phoneNumber, string address, int postCode, string majorField, int gradePointAverage)
{
MySqlConnection conn = connection();
conn.Open();
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = conn;
string myInsertSQL = "INSERT INTO person(personId, firstName, lastName, DOB, phoneNumber, address, postCode) VALUES (@personId, @firstName, @lastName, @DOB, @phoneNumber, @address, @postCode)";
cmd.Prepare();
cmd.CommandText = myInsertSQL;
cmd.Parameters.AddWithValue("@personId", personId);
cmd.Parameters.AddWithValue("@firstName", firstName);
cmd.Parameters.AddWithValue("@lastName", lastName);
cmd.Parameters.AddWithValue("@DOB", DOB);
cmd.Parameters.AddWithValue("@phoneNumber", phoneNumber);
cmd.Parameters.AddWithValue("@address", address);
cmd.Parameters.AddWithValue("@postCode", postCode);
cmd.ExecuteNonQuery();
}

但是另外两个文本框,GPAMajor Field 需要转到名为student 的单独表中。我的代码是:

 string myInsertSQLStudent = "INSERT INTO student(majorField, gradePointAverage) VALUES (@majorField, @gradePointAverage)";
cmd.Prepare();
cmd.CommandText = myInsertSQLStudent;
cmd.Parameters.AddWithValue("@majorField", majorField);
cmd.Parameters.AddWithValue("@gradePointAverage", gradePointAverage);
prevID(conn, cmd);

就在上面的代码下面。但是,这不起作用,我遇到了崩溃,并收到一条消息,告诉我 无法添加或更新子行:外键约束失败 然后它谈到了主键。

但是,如果我填写文本框,然后单击 insert,程序会崩溃,但是 person 表会填满数据,但它可以正常工作,但是student 表没有。

我将如何让它发挥作用?

谢谢!

编辑:

这是我的个人表:

personId | firstName | lastName | DOB | phoneNumber | address | postCode |

blah |blah |blah |blah |blah |blah |blah |blah

这是我的学生 table

person_personId | majorField | gradePointAverage |
balh |blah |blah |

最佳答案

student 表可能有一个personId 字段,它引用了person 表。你也必须填写它(在你的第二个插入中)。

此外,您最好将两个插入都放在一个事务中,这样您就不会得到不一致的或有点工作的数据。通过交易,您将获得两条记录或一条记录都没有,而不是像现在这样只有一条记录。

关于c# - INSERT,以及如何将 INSERT 插入到多个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18823766/

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