Problem med LAST_INSERT_ID()
HejDet her spørgsmål kunne godt ligge i MySQL, men tror mere problemet ligger i min asp.net side.
Til problemet:
Jeg indsætter en række i en table:
strSQL = "INSERT INTO inv_order(orderID,skoleID) VALUES(null," + customerID + ")";
dbAccess.dbExecuteNonQuery(strSQL);
Derefter vil jeg gerne vide orderID:
strSQL = "SELECT LAST_INSERT_ID() as lastID";
dbAccess.DbOpen();
dataReader = dbAccess.dbExecuteQuery(strSQL);
while (dataReader.Read())
orderID = int.Parse(dataReader["lastID"].ToString());
dbAccess.DbClose();
Problemet er så den giver mig et ID der er blevet indsæt længere tilbage og ikke det id jeg lige har sat ind. Nogen gange går det godt og andre går det galt. Hvad kan der være i vejen?
DB metoder:
public MySqlDataReader dbExecuteQuery(string strSql)
{
MySqlCommand sqlCmd = new MySqlCommand(strSql, sqlConnection);
mySqlReader = sqlCmd.ExecuteReader();
return mySqlReader;
}
public void dbExecuteNonQuery(string strSql)
{
MySqlCommand sqlCmd = new MySqlCommand(strSql, sqlConnection);
sqlConnection.Open();
sqlCmd.ExecuteNonQuery();
sqlConnection.Close();
}
public void DbOpen()
{
sqlConnection.Open();
}
public void DbClose()
{
sqlConnection.Close();
mySqlReader.Close();
}
På forhånd tak.