2011-03-13 13 views
2
public static long callproc() 
{ 
    DbCommand command = db.GetStoredProcCommand("dbo.proc"); 
    db.AddOutParameter(command, "@proc_id", DbType.Int64, 8); 
    db.ExecuteNonQuery(command); 
    return long.Parse(db.GetParameterValue(command, "@proc_id").ToString()); 
} 

これはパラメータを使用する最も良い方法ですか?パラメータを処理する

答えて

2

関数GetParameterValue()は.NETフレームワークの一部ではないので、わかりません。

いずれにしても、SqlInt64stringに、次にlongに変換しているようです。これはうまくいくが、それは遠い道のりです。 SqlInt64longの間の暗黙の変換があります。試してください:

return (long) command.Parameters["@proc_id"].Value; 

これにより、中間の必要がなくなります。string

+0

ありがとう、私はそれを試みます。 "db.AddOutParameter(command、" @proc_id "、DbType.Int64,8)"の変数のサイズはどうですか?どうすればそれが8になることができますか? – Naor

+1

@Naor: 'Int64'は64ビットなので、おそらく常に8バイト必要です。 'size'パラメータはオプションですが、私の経験上、文字列にのみ必要です。 – Andomar

+0

どのようにオプションですか?私はそれを置く必要があります..他のオプションはありません.. – Naor

関連する問題