MySQL使用ADO.NET以原子方式执行参数化查询

时间:2018-03-18 13:34:14

标签: mysql ado.net executenonquery

我正在使用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查询原子方式执行参数化查询?

提前感谢您的帮助!

1 个答案:

答案 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()。它有效!