2012-01-20 20 views
1

私はSQL出力句を使用してデータベースから新しく挿入されたレコードのIDを取得しようとしています、すなわち挿入された行の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; 
    } 
} 

答えて

5

id = (int) command.ExecuteScalar()を試してみてください。あなたはぼんやりとしたままにしておきました。

3

ExecuteScalarはメソッドであるため、ExecuteScalar()の後に引数リストを置く必要があります。

MethodGroupsに関するエラーが表示される場合は、間違いの可能性があります。

関連する問題