我是这样传递参数的,后面两个@C,@D 是用来接受存储过程的输出参数的。看不出有什么错误SqlParameter[] param = {
 new SqlParameter("@A",SqlDbType.Int),
 new SqlParameter("@B",SqlDbType.Int),
 new SqlParameter("@C",SqlDbType.Int),
 new SqlParameter("@D",SqlDbType.Int)
   };
param[0].Value = 11;
param[1].Value = 22;
param[2].Direction = ParameterDirection.Output;
param[3].Direction = ParameterDirection.Output;
// 接受用下面方式 但是不行
int c = Convert.ToInt32(param[2].Value);
int d = Convert.ToInt32(param[3].Value);
// 存储过程如下Create PROCEDURE GetAll
@A INT, 
@B INT, 
@C INT OUTPUT, 
@D INT OUTPUT 
AS-- 设置返回值
SET @C = 100
SET @D = 200