我从c#表单传递下面的参数。但是会出错。我找不到原因在哪里。请帮帮我。过程或函数Sp_Add_Moeny指定的参数太多
SqlParameter[] arrParam = new SqlParameter[3];
arrParam[0] = new SqlParameter("@mRegNo", SqlDbType.BigInt, 8);
arrParam[0].Value = Convert.ToInt64(m);
arrParam[1] = new SqlParameter("@amount", SqlDbType.Decimal);
arrParam[1].Value = money;
arrParam[2] = new SqlParameter("@intResult", SqlDbType.Int);
arrParam[2].Direction = ParameterDirection.Output;
int result = objDUT.ExecuteSqlSP(arrParam, "Sp_Add_Moeny");
这里是下面的功能:
public int ExecuteSqlSP(SqlParameter[] arrParam, string strSPName)
{
OpenConnection();
_mDataCom.CommandType = CommandType.StoredProcedure;
_mDataCom.CommandText = strSPName;
_mDataCom.CommandTimeout = 30;
for (int i = 0; i < arrParam.Length; i++)
{
_mDataCom.Parameters.Add(arrParam[i]);
}
_mDataCom.ExecuteNonQuery();
int intResult = Int32.Parse(_mDataCom.Parameters["@intResult"].Value.ToString());
CloseConnection();
DisposeConnection();
return intResult;
}
请提出一个解决方案。谢谢
你在哪里definte,Sp_Add_Moeny它预计会有多少个参数? – JeffUK
什么错误? Google搜索到的是什么?请阅读并在[mcve]上采取行动。 – philipxy
备注:您应该**不要**为存储过程使用'sp_'前缀。微软已经保留了这个前缀以供自己使用(参见*命名存储过程*)](http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx),以及你将来有可能冒着名字冲突的风险。 [这对你的存储过程性能也是不利的](http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix)。最好只是简单地避免使用'sp_'并将其他内容用作前缀 - 或者根本没有前缀! –