我有这个问题。我在MySql中创建了两个与外键连接的表。我想从c#中的表中插入数据。无法将数据从c#插入到mysql数据库中
表人士
ID - INT,自动增加,主键
FIRST_NAME - VARCHAR
姓氏 - VARCHAR
表地址
ID - 自动递增,主键
城市 - VARCHAR
steet_number - varchar
persons_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”列中?或者,也许我错了别的地方?
看一看:你在连接两个没有';'的sql语句。相反,为什么你不把这两个语句分开并在事务中执行它? – HuorSwords
我试过了,但这不是问题。我可以做两个字符串和两个命令,但仍然会出错。问题是我不知道如何从列“table.id”中获取最后一个值。 – PUDEV