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());
}
这是使用参数的最佳方式吗?
答案 0 :(得分:2)
函数GetParameterValue()
不是.NET框架的一部分,所以我不确定它是做什么的。
在任何情况下,您似乎都在将SqlInt64
转换为string
,然后转换为long
。这将有效,但它还有很长的路要走。 SqlInt64
和long
之间存在隐式转换。尝试:
return (long) command.Parameters["@proc_id"].Value;
这避免了对中间string
的需求。