だから私はこのフォームを持っています: 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();
}
しかし、他の 2 つのテキスト ボックスは、という別のテーブルに移動する必要があり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 |