存储过程返回值问题。
写1个存储过程,想带回1个返回值。。。。。。为字符型.
存储过程大致如下
INSERT INTO [Order](
[OrderNumber],[OrderType],[OrderPO],[OrderSta],[CreDate],
[ShipDate],[SignAddress],[Currency],[CompanyID],[CustomerID],
[ShipType],[PayType],[Destination],[Insure],[Pack],[AriCost],[OceCost],
[DelegateCoy],[DelegateNum],[MaterialSta],[FactoryID],
[ShipSta],[TachSta],[PS],[Manager],[LogID]
)VALUES(
@OrderNumber,@OrderType,@OrderPO,@OrderSta,@CreDate,
@ShipDate,@SignAddress,@Currency,@CompanyID,@CustomerID,
@ShipType,@PayType,@Destination,@Insure,@Pack,@AriCost,@OceCost,
@DelegateCoy,@DelegateNum,@MaterialSta,@FactoryID,
@ShipSta,@TachSta,@PS,@Manager,@LogID
)
return convert(varchar(20),@@IDENTITY) +'-'+ @OrderNumber
代码如下
new SqlParameter("@RETURN_VALUE", SqlDbType.VarChar,20)};
parameters[0].Value = order.OrderType;
parameters[1].Value = order.OrderPO;
parameters[2].Value = order.OrderSta;
parameters[3].Value = order.CreDate;
parameters[4].Value = order.ShipDate;
parameters[5].Value = order.SignAddress;
parameters[6].Value = order.Currency;
parameters[7].Value = order.CompanyID;
parameters[8].Value = order.CustomerID;
parameters[9].Value = order.ShipType;
parameters[10].Value = order.PayType;
parameters[11].Value = order.Destination;
parameters[12].Value = order.Insure;
parameters[13].Value = order.Pack;
parameters[14].Value = order.AriCost;
parameters[15].Value = order.OceCost;
parameters[16].Value = order.DelegateCoy;
parameters[17].Value = order.DelegateNum;
parameters[18].Value = order.MaterialSta;
parameters[19].Value = order.TachSta;
parameters[20].Value = order.FactoryID;
parameters[21].Value = order.ShipSta;
parameters[22].Value = order.PS;
parameters[23].Value = order.Manager;
parameters[24].Value = order.LogID;
parameters[25].Value = LogSave.CustomerStr(LogSave.CustomerNum);
parameters[26].Direction = ParameterDirection.ReturnValue;
int row = cst.ahelper.ExecuteNonQuery(cst.SqlStr, "Order_ADD", parameters);
string ReStr = (string)parameters[26].Value;
string[] arrs = ReStr.Split(new string[] { "-" }, StringSplitOptions.RemoveEmptyEntries);
order.OrderID = int.Parse(arrs[0]);
order.OrderNumber = arrs[1];
return row;
执行后,数据插入进去了,但抱了1个错误。
错误提示为 ,在将 varchar 值 '9-11PL001L' 转换成数据类型 int 时失败。
其中 '9-11PL001L' 是返回的数据,也是我需要得到的,请问如何解决,谢谢