C# 获取插入行的ID

C# 获取插入行的ID,c#,asp.net,sql-server,sql-server-2008,asp.net-3.5,C#,Asp.net,Sql Server,Sql Server 2008,Asp.net 3.5,我试图使用sql输出子句从数据库中获取新插入记录的id,即 insert into table1(forename, surname) output inserted.id values(@forename, @surname) 我试图像这样捕捉身份: Int32 id = (int)command.ExecuteScalar; 这给了我一条错误消息: Compiler Error Message: CS0428: Cannot convert method group 'ExecuteSc

我试图使用sql输出子句从数据库中获取新插入记录的id,即

insert into table1(forename, surname) output inserted.id values(@forename, @surname)
我试图像这样捕捉身份:

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。您刚刚取消了参数设置。

尝试id=int command.ExecuteScalar。您刚刚忽略了参数。

ExecuteScalar是一个方法,因此您必须在它后面放置一个参数列表:ExecuteScalar


任何时候当您遇到有关MethodGroups的错误时,这可能就是错误。

ExecuteScalar是一个方法,因此您必须在它后面放置一个参数列表:ExecuteScalar

每当你在MethodGroups上出错时,这可能就是错误所在