我正在使用ADO.NET和参数化查询(未命名参数和ExecuteNonQuery方法)来写入SQL Server和MySQL dBases(应用程序必须与两者一起使用)。对于这两者,所有表的主键都是自动递增的。
使用SQL Server,我可以设置" CommandText"对于以下情况,参数化查询和SELECT
以原子方式执行:
INSERT INTO myTable (param1, param2, param3) VALUES (?, ?, ?);SELECT MAX(ID) FROM myTable;
这可确保返回的ID(主键)是与参数化查询相对应的ID。
不幸的是,使用MySQL&#34 ;; SELECT ..."生成语法错误。如何使用ADO.NET和MySQL以SELECT
查询原子方式执行参数化查询?
提前感谢您的帮助!
答案 0 :(得分:0)
非常感谢大家的帮助!根据每个人的建议,我不再使用Select Max(ID)。
而不是使用SQL Server我在INSERT语句中添加OUTPUT子句,如下所示: How do I use an INSERT statement's OUTPUT clause to get the identity value?
使用MySQL我按照建议使用select last_insert_id()。它有效!