具体的界面按钮如何使用这个方法?   
   /// <summary>
        /// 插入采购单利用事务
        /// </summary>
        /// <param name="order">采购单头</param>
        /// <param name="ls">采购单信息</param>
        /// <returns>返回插入的表头id</returns>
        public int InsertOrder(OrderData order, List<OrderInfoData> orderinfolist)
        {
            SqlConnection conn = new SqlConnection(strConn);
            conn.Open();
            SqlCommand cmd = new SqlCommand("insert into [order](Order_No, PurveyInfo_ID, User_ID, Order_Time, Down, Blank, YiTuiHui, ZaiTu, YiShouHuo) values(@order_no, @purveyinfo_id, @user_id, @order_time, 0, 0, 0, 0, 0)", conn);
            SqlTransaction trans;
            trans = conn.BeginTransaction();
            cmd.Transaction = trans;
            List<int> rlist = new List<int>();
            try
            {
                cmd.Parameters.AddWithValue("@order_no", order.Order_No);
                cmd.Parameters.AddWithValue("@purveyinfo_id", order.PurveyInfo_ID);
                cmd.Parameters.AddWithValue("@user_id", order.User_ID);
                cmd.Parameters.AddWithValue("@order_time", order.Order_Time);
                cmd.ExecuteNonQuery();
                cmd.CommandText = "select @@IDENTITY";
                int i = Convert.ToInt32(cmd.ExecuteScalar());
                foreach (OrderInfoData orderinfo in orderinfolist)
                {
                    cmd.CommandText = "insert into orderInfo values(@order_id,@merchandiseinfo_id, @price, @quantity, 0)";
                    cmd.Parameters.Clear();
                    cmd.Parameters.AddWithValue("@order_id", i);
                    cmd.Parameters.AddWithValue("@merchandiseinfo_id", orderinfo.MerchandiseInfo_ID);
                    cmd.Parameters.AddWithValue("@price", orderinfo.Price);
                    cmd.Parameters.AddWithValue("@quantity", orderinfo.Quantity);
                    cmd.ExecuteNonQuery();
                }
                trans.Commit();
                return i;
            }
            catch (SqlException ex)
            {
                trans.Rollback();
                throw ex;
            }
            finally
            {
                conn.Close();
            }
        } 

解决方案 »

  1.   

     public int InsertOrder(OrderData order, List<OrderInfoData> orderinfolist)
    调用后传给他对应的参数啊 
      

  2.   

    获取你页面上新添加的订单信息,初始化一个List<Order>,把所有的订单添加到List里面,把list传到InsertOrder里面就可以了,
      

  3.   

    获取你页面上新添加的订单信息,初始化一个List<Order>,把所有的订单添加到List里面,把list传到InsertOrder里面就可以了,
      

  4.   

    OrderData order 是跟数据库表对应的一个实体类的实例,存储表头信息(订单头)
    List<OrderInfoData> orderinfolist 是跟数据库表对应的一个实体类的实例的泛型集合,存储表体信息(一条一条的订单信息)
      

  5.   

    OrderData order = new OrderData();
    order.属性1=值1;
    order.属性2=值2;
    ...List<OrderInfoData> orderinfolist = new List<OrderInfoData>();
    OrderInfoData orderInfo;for(...)
    {
       orderInfo = new OrderInfoData();
       orderInfo.属性1=值1;
       orderInfo.属性2=值2;
       ...
       orderinfolist.Add(orderinfo)
    }假设 InsertOrder发放所在的类为SqlHelper并在同样的namespace
    SqlHelper helper = new SqlHelper();
    int result = helper.InsertOrder(order,orderinfolist);
      

  6.   

    InsertOrder(OrderData order, List<OrderInfoData> orderinfolist)OrderData实体里的字段赋值
      cmd.Parameters.AddWithValue("@order_no", order.Order_No);
      cmd.Parameters.AddWithValue("@purveyinfo_id", order.PurveyInfo_ID);
      cmd.Parameters.AddWithValue("@user_id", order.User_ID);
      cmd.Parameters.AddWithValue("@order_time", order.Order_Time);
      cmd.ExecuteNonQuery();
    这里用到什么字段在前台赋值 然后传入InsertOrder方法做为第一个参数
    List<OrderInfoData> orderinfolist一个单头下有好多信息 把他们循环插入到数据库另外 orderinfolist在前台 也要用lt.add的形式把值赋里然后用事务来进行insert 操作。。如果执行成功就会返回一个表头的ID 证明这个表头都已经操作成功了