把手输出参数
问题描述:
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());
}
这是使用输出参数的最佳方式吗?把手输出参数
答
函数GetParameterValue()
不是.NET框架的一部分,所以我不确定它的功能。
无论如何,它看起来像你正在转换SqlInt64
为string
,然后到long
。这将工作,但这是漫长的。在SqlInt64
和long
之间存在隐式转换。试试:
return (long) command.Parameters["@proc_id"].Value;
这样可以避免需要中间的string
。
谢谢,我会尽力的。 “db.AddOutParameter(command,”@proc_id“,DbType.Int64,8)”中的变量大小如何?我怎么能确定它会是8? – Naor 2011-03-13 13:08:45
@Naor:一个'Int64'需要64位,所以它可能总是占用8个字节。 'size'参数是可选的,根据我的经验,它只需要字符串。 – Andomar 2011-03-13 13:17:20
如何可选?我必须把它..没有其他选择.. – Naor 2011-03-13 14:44:40