I implemented code in asp.net for storing record and retrieving identity field value. here is my code.
str.Append("Insert Into Table1(value1,value2)values(?value1,?value2);Select LAST_INSERT_ID();");
MySqlCommand cmd = new MySqlCommand(str.ToString(), con);
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add(new MySqlParameter("?value1", value1));
cmd.Parameters.Add(new MySqlParameter("?value2", value2));
if (con.State != ConnectionState.Open)
con.Open();
cmd.ExecuteNonQuery();
long id = Convert.ToInt64(cmd.ExecuteScalar());
When i check my database, each record posted twice. when i remove line.
long id = Convert.ToInt64(cmd.ExecuteScalar());
Every thing fine, but not identity retrieved.
How can i implement code in order to retrieve identity field value and record posted one time only.
ExecuteScalarexecutes the query and returns the result.ExecuteNonQueryexecutes the query. That means you are executing the query twice here by calling both. Get rid of theExecuteNonQuerymethod and you will be good