如何插入最后一个ID?我需要子表的新ID。 谢谢。
答案 0 :(得分:0)
尝试使用两个OleDbCommand,一个用于INSERT语句,另一个用于SELECT @@ IDENTITY语句。使用第二个OleDbCommand,在一个OleDbConnection中,您可以使用ExecuteNonQuery首先运行INSERT,然后使用ExecuteScalar运行SELECT @@ IDENTITY。您可以。解析结果以拥有新的ID。
public bool InserisciLibro(LibroCLS libro)
{
bool isSuccess = false;
using (OleDbConnection con = new OleDbConnection(myConnectionstring))
{
con.Open();
string SQL =@"INSERT INTO tblLibri (AutoreFK, Titolo, Pagine, EditoreFK, ISBN, Notes) VALUES (@AutoreFK, @Titolo, @Pagine, @EditoreFK, @ISBN, @Notes);";
int idnewlibro = 0;
using (OleDbCommand cmd = new OleDbCommand(SQL, con))
{
cmd.Parameters.AddWithValue("@AutoreFK",libro.AutoreFK);
cmd.Parameters.AddWithValue("@Titolo", libro.Titolo);
cmd.Parameters.AddWithValue("@Pagine", libro.Pagine);
cmd.Parameters.AddWithValue("@EditoreFK", libro.EditoreFK);
cmd.Parameters.AddWithValue("@ISBN", libro.ISBN);
cmd.Parameters.AddWithValue("@Notes", libro.Notes);
int row = cmd.ExecuteNonQuery();
//ora lancio il cmd per ottenere l'id autoincrementale ottenuto
OleDbCommand cmdIdentity = new OleDbCommand("SELECT @@IDENTITY", con);
idnewlibro =(int) cmdIdentity.ExecuteScalar();
if (idnewlibro != 0)
{
isSuccess = true;
}
}
}
return isSuccess;
}