所以我有这个表格:http: //i.imgur.com/vZYssQy.png
现在ID
, First Name
, Last Name
, DOB
, Address
,Phone Number
和Post 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();
}
但是另外两个文本框,GPA
需要Major 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);
它就在上面的代码下方。但是,这不起作用,我遇到了崩溃和一条消息,告诉我Cannot add or update a child row: a foreign key constraint fails
然后它谈到了主键。
但是,如果我填写文本框并单击insert
程序崩溃,它会起作用,但person
表格会充满数据,但student
表格不会。
我将如何让它发挥作用?
谢谢!
编辑:
这是我的人表:
personId | firstName | lastName | DOB | phoneNumber | address | postCode |
blah |blah |blah |blah |blah |blah |blah |blah
这是我的学生桌
person_personId | majorField | gradePointAverage |
balh |blah |blah |