正在获取插入行的ID
本文关键字:ID 插入 获取 | 更新日期: 2023-09-27 18:20:51
我正试图使用sql输出子句从数据库中获取新插入记录的id,即
insert into table1(forename, surname) output inserted.id values(@forename, @surname)
我正试图捕获这样的id:
Int32 id = (int)command.ExecuteScalar;
这给了我一条错误消息:
Compiler Error Message: CS0428: Cannot convert method group 'ExecuteScalar' to non-delegate type 'int'. Did you intend to invoke the method?
不确定我做错了什么。
以下是现有代码的大摘录:
using (connection = new SqlConnection(ConfigurationManager.AppSettings["connString"]))
{
using (command = new SqlCommand("insert into table1(forename, surname) OUTPUT INSERTED.ID values(@forename, @surname)", connection))
{
command.Parameters.Add("@forename", SqlDbType.VarChar, 255).Value = forename;
command.Parameters.Add("@surname", SqlDbType.VarChar, 255).Value = surname;
command.Connection.Open();
id = (int)command.ExecuteScalar;
}
}
尝试id = (int) command.ExecuteScalar()
。您刚刚关闭了parens。
ExecuteScalar是一个方法,所以必须在它后面放一个参数列表:ExecuteScalar()。
任何时候你得到一个关于MethodGroups的错误,这可能就是错误。