だから私はこのフォームを持っています: 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 Fieldstudent
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 |