存储过程返回值问题。

lifeixie 2011-09-05 05:09:10
写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' 是返回的数据,也是我需要得到的,请问如何解决,谢谢




...全文
101 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
聪明的一休 2011-09-05
  • 打赏
  • 举报
回复
返回值的话建议你使用输出型参数

结果集返回才在最后select输出
xiongxyt2 2011-09-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 huangwenquan123 的回复:]
return 返回的是一个整数值
你可以设置output
[/Quote]
参考
huangwenquan123 2011-09-05
  • 打赏
  • 举报
回复
return 返回的是一个整数值
你可以设置output
kkun_3yue3 2011-09-05
  • 打赏
  • 举报
回复
这改下试试
return convert(varchar(20),@@IDENTITY) +'-'+ CAST(@OrderNumber AS VARCHAR(20))
lifeixie 2011-09-05
  • 打赏
  • 举报
回复
没人知道吗???????????????

679

社区成员

发帖
与我相关
我的任务
社区描述
智能路由器通常具有独立的操作系统,包括OpenWRT、eCos、VxWorks等,可以由用户自行安装各种应用,实现网络和设备的智能化管理。
linuxpython 技术论坛(原bbs)
社区管理员
  • 智能路由器社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧