调用存储过程,向主表和明细表插入数据

46 篇文章 0 订阅
下面是插入主表存储过程
PROCEDURE dbo.Proc_OrdMa
(
@ItemsFee float,
@ItemsNum int,
@Name nvarchar(50),
@OrderID int output
)
as
Insert into TSa_Order
(ItemsFee,ItemsNum,ReceiverName)
values
(@ItemsFee,@ItemsNum,@Name)
select @OrderID=@@identity

下面是插入明细表存储过程

PROCEDURE dbo.Proc_OrdDt
@ItemID int,
@Num int,
@OrderID int,
@TotailPrice float,
@Remark varchar(200)
as
Insert into TSa_OrderDt
(ItemID,Num,OrderID,TotailPrice,Remark)
values
(@ItemID,@Num,@OrderID,@TotailPrice,@Remark)

下面是.net后台代码

写了一个公共类OrderClass

  //处理单据主表数据插入
  public int OrderMa(params SqlParameter[] Parameters)
  {
  string s_sqlconn = ConfigurationManager.ConnectionStrings["sqlconn"].ConnectionString;
  using (SqlConnection conn = new SqlConnection(s_sqlconn))
  {
  conn.Open();
  using (SqlCommand cmd = conn.CreateCommand())
  {
  cmd.CommandText = "Proc_OrdMa";
  cmd.CommandType = CommandType.StoredProcedure;
  foreach (SqlParameter Parameter in Parameters)
  {
  cmd.Parameters.Add(Parameter);
  }

  SqlParameter orderID = cmd.Parameters.Add("@OrderID", SqlDbType.Int, 4);
  orderID.Direction = ParameterDirection.Output;
  cmd.ExecuteNonQuery();
  return Convert.ToInt32(orderID.Value.ToString());
  }
  }
  }

  //处理单据明细数据插入
  public int OrderDt(params SqlParameter[] Parameters)
  {
  string s_sqlconn = ConfigurationManager.ConnectionStrings["sqlconn"].ConnectionString;
  using (SqlConnection conn = new SqlConnection(s_sqlconn))
  {
  conn.Open();
  using (SqlCommand cmd = conn.CreateCommand())
  {
  cmd.CommandType = CommandType.StoredProcedure;
  cmd.CommandText = "Proc_OrdDt";
  foreach (SqlParameter Parameter in Parameters)
  {
  cmd.Parameters.Add(Parameter);
  }
  return cmd.ExecuteNonQuery();
  }
  }
  }

//下面是后台插入代码

//插入主表
int OrderID = dborder.OrderMa(new SqlParameter("ItemsFee",Convert.ToDouble(labTotalPrice.Text.ToString())), new SqlParameter("ItemsNum", Convert.ToInt32(labTotalNum.Text.ToString())), new SqlParameter("Name", strName));

//插入明细
  foreach (GridViewRow gvr in gvShopCar.Rows)
  {
  int ItemID = int.Parse(gvr.Cells[1].Text);
  int Num = int.Parse(gvr.Cells[3].Text);
  float TotailPrice = float.Parse(gvr.Cells[5].Text);
  dborder.OrderDt(new SqlParameter("ItemID", ItemID), new SqlParameter("Num", Num), new SqlParameter("OrderID", OrderID), new SqlParameter("TotailPrice", TotailPrice), new SqlParameter("Remark", "西门吹雪"));

  }


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值