Sql 使用企业库和以不同方式添加输出参数

Sql 使用企业库和以不同方式添加输出参数,sql,data-binding,data-access-layer,Sql,Data Binding,Data Access Layer,我正在使用企业库查询数据库,并使用GetStoredProcCommand查询数据库。当我想使用输出参数时,问题就出现了 DbCommand cmd = db.GetStoredProcCommand("storedProcedureName", param1, param2, param3, ...); 现在,如果我想添加输出参数,我不能简单地编写db.AddOutParameter(cmd,“@TotalNumber”,DbType.Int64,sizeof(Int64)) 我必须使用d

我正在使用企业库查询数据库,并使用GetStoredProcCommand查询数据库。当我想使用输出参数时,问题就出现了

 DbCommand cmd = db.GetStoredProcCommand("storedProcedureName", param1, param2, param3, ...);
现在,如果我想添加输出参数,我不能简单地编写
db.AddOutParameter(cmd,“@TotalNumber”,DbType.Int64,sizeof(Int64))

我必须使用
db.AddInParameter(cmd,“param1”,DbType.Int32,param1)添加所有输入参数


如果你有10个输入参数,在你的代码中一个一个地添加它们是不合适的,你只希望你能回到一次在同一个函数调用中添加它们。在使用输出参数的同时,是否有办法做到这一点

基本上,您所需要做的就是为输出参数传递一个
null
(或任何真正的内容),而不必为
db.AddOutParameter

DbCommand GetStoredProcCommand(字符串storedProcedureName)上的注释中,
参数对象[]参数值)

将查找存储过程的参数,并按位置顺序分配值

他们没有告诉您的是,Db参数的计数与参数的计数不同,您将获得一个
Resources.ExceptionMessageParameterMatchFailure
,因此对于每个输出Db参数,您仍然需要传递一些东西

他们也没有告诉您的是,当它赋值时,它会检查数据库参数的方向。如果它的输出只是跳过你的值