SQL存储过程返回异常值
我写了一个存储过程,用来保存库存,若写库存成功,ret = 1;若失败,ret = 2。
在存储过程测试过程中,一切正常。但是在应用程序(VS C#)调用时,返回值一直是3!
//前台(VS c#)执行存储过程
public int StockInConfrimNoManifest(string sino, string username, string barcode, Entry_StockInDetail stockInDetail)
{
int ret = 0;
string sqlStr = "STOCK_IN_OP_NOMANIFEST";
string time = stockInDetail.ProductTime.ToString();
Dictionary<int, SqlParaStruct> paraList = new Dictionary<int, SqlParaStruct>();
paraList.Add(0, new SqlParaStruct("@SINo", sino, SqlParaType.ParaDataType_String, ParameterDirection.Input));
paraList.Add(1, new SqlParaStruct("@UserName", username, SqlParaType.ParaDataType_String, ParameterDirection.Input));
paraList.Add(2, new SqlParaStruct("@Model", stockInDetail.Model, SqlParaType.ParaDataType_String, ParameterDirection.Input));
paraList.Add(3, new SqlParaStruct("@InQuantity", stockInDetail.InQuantity, SqlParaType.ParaDataType_Int, ParameterDirection.Input));
paraList.Add(4, new SqlParaStruct("@ProductTime", time, SqlParaType.ParaDataType_String, ParameterDirection.Input));
paraList.Add(5, new SqlParaStruct("@BarCode", barcode, SqlParaType.ParaDataType_String, ParameterDirection.Input));
try
{
using (IDataAccess ida = DataAccessFactory.getInstence())
{
ida.EnterQuery();
ret = ida.ExecuteProcedure(sqlStr, paraList);//1成功 2失败,但是一直返回3
ida.LeaveQuery();
}
}
catch (Exception ex)
{
Logger.Error(string.Format("[数据库]关闭数据库连接异常:{0}{1}",
ex.Message.ToString(), ex.StackTrace.ToString()));
}
return ret;
}
// 具体实现 ExecuteProcedure
public int ExecuteProcedure(string name, Dictionary<int, SqlParaStruct> para)
{
int ret = 0;
try
{
SqlCommand cmd = this.CreateCommand(name);
cmd.CommandTimeout = 300000000;
cmd.CommandType = CommandType.StoredProcedure;
if (para != null)
{
AttachParameters(cmd, para);
}
ret = cmd.ExecuteNonQuery();
if (ret != 0)
{
GetParameter(cmd, para);
}
return ret;
}
catch (Exception ex)
{
}
return ret;
}