この問題があります。外部キーで接続された 2 つのテーブルを MySql に作成します。C# からテーブルにデータを挿入したい。
table person
id - int、自動インクリメント、主キー
first_name - varchar
last_name - varchar
テーブル アドレス
id - 自動インクリメント、主キー
city - varchar
steet_number - varchar
person_id - 外部キー
string mySqlString = "server=localhost;uid=root;pwd=root;database=address_book;";
MySqlConnection conn = new MySqlConnection(mySqlString);
try
{
conn.Open();
string insertPerson = "INSERT INTO persons(first_name, last_name) VALUES (@first_name, @last_name)";
string insertAddress = "INSERT INTO addresses(city, street_number, persons_id) VALUES (@city, @street_number, @persons_id)";
MySqlCommand command = new MySqlCommand(insertPerson, conn);
MySqlCommand secondCommand = new MySqlCommand(insertAddress, conn);
command.Parameters.AddWithValue("@first_name", TextBox1.Text);
command.Parameters.AddWithValue("@last_name", TextBox2.Text);
int id = Convert.ToInt32(command.LastInsertedId);
command.ExecuteNonQuery();
secondCommand.Parameters.AddWithValue("@city", TextBox3.Text);
secondCommand.Parameters.AddWithValue("@street_number", TextBox4.Text);
secondCommand.Parameters.AddWithValue("@persons_id", id);
secondCommand.ExecuteNonQuery();
}
catch (MySqlException ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Clone();
}
しかし、これは機能していません。主キーから最後に挿入された値を取得して、その値を列「persons_id」に挿入するにはどうすればよいですか? それとも、どこか間違っているのでしょうか?