我在asp.net中实现了代码,用于存储记录和检索标识字段值。这是我的代码。
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());
当我检查我的数据库时,每条记录都发布了两次。当我删除行。
long id = Convert.ToInt64(cmd.ExecuteScalar());
一切都很好,但没有检索到身份。 如何实现代码以检索标识字段值并仅记录一次发布。
答案 0 :(得分:3)
ExecuteScalar
执行查询并返回结果。 ExecuteNonQuery
执行查询。这意味着您通过调用两者来执行查询两次。摆脱ExecuteNonQuery
方法,你会很好
if (con.State != ConnectionState.Open)
con.Open();
long id = Convert.ToInt64(cmd.ExecuteScalar());