WPF之多表新增

页面主要用DockPanel布局和Grid布局来做界面 ,界面有点单一。如下图:
在这里插入图片描述
数据库主要有两张表:一张采购信息订单表,一张采购明细表。
数据库存储过程如下:

--新增采购信息
IF (@type='XZ_Purchase_PurchasingManagement')
BEGIN
INSERT INTO Purchase
           ( StaffID ,WarehouseID ,SupplierInforID ,
             PurchaseNo ,PurchaseDate ,ShouldMny ,RealityMny ,Audit )
   VALUES  (@StaffID, @WarehouseID,@SupplierInforID,@PurchaseNo,
             @PurchaseDate,@ShouldMny, @RealityMny, @Audit) 
		   SELECT SCOPE_IDENTITY()
 END
 --新增采购商品信息详细
IF (@type='XZ_PurchaseDtl_PurchasingManagement')
BEGIN
INSERT INTO PurchaseDtl
           ( PurchaseID ,CommodityInforID  )
   VALUES  ( @PurchaseID, @CommodityInforID) 
    END

服务层因为是多表新增,所以在新增采购信息要返回采购信息表的ID,给我们采购明细表,进行新增。
采购信息表的写法和查询的写法差不了多少。
代码如下:

 #region 新增
        //新增采购信息
        [OperationContract]
        public DataSet XZ_Purchase_PurchasingManagement(int StaffID, int WarehouseID, int SupplierInforID,
             string PurchaseNo, DateTime PurchaseDate, decimal ShouldMny, decimal RealityMny, bool Audit)
        {
            SqlParameter[] mySqlParameters = {
                new SqlParameter("@type",SqlDbType.NChar),
                new SqlParameter("@StaffID",SqlDbType.Int),
                new SqlParameter("@WarehouseID",SqlDbType.Int),
                new SqlParameter("@SupplierInforID",SqlDbType.Int),
                new SqlParameter("@PurchaseNo",SqlDbType.NChar),
                new SqlParameter("@PurchaseDate",SqlDbType.DateTime),
                new SqlParameter("@ShouldMny",SqlDbType.Decimal),
                new SqlParameter("@RealityMny",SqlDbType.Decimal),
                new SqlParameter("@Audit",SqlDbType.Bit)
            };
            mySqlParameters[0].Value = "XZ_Purchase_PurchasingManagement";
            mySqlParameters[1].Value = StaffID;
            mySqlParameters[2].Value = WarehouseID;
            mySqlParameters[3].Value = SupplierInforID;
            mySqlParameters[4].Value = PurchaseNo;
            mySqlParameters[5].Value = PurchaseDate;
            mySqlParameters[6].Value = ShouldMny;
            mySqlParameters[7].Value = RealityMny;
            mySqlParameters[8].Value = Audit;
            DataTable myDataTable = myDALMethod.QueryDataTable("Frm_PurchasingManagement", mySqlParameters);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        //新增采购详细信息
        [OperationContract]
        public int XZ_PurchaseDtl_PurchasingManagement(int PurchaseID, int CommodityInforID)
        {
            SqlParameter[] mySqlParameters = {
                new SqlParameter("@type",SqlDbType.Char),
                new SqlParameter("@PurchaseID",SqlDbType.Int),
                new SqlParameter("@CommodityInforID",SqlDbType.Int)
                //new SqlParameter("@PurchaseCount",SqlDbType.Int),
                //new SqlParameter("@TotalMny",SqlDbType.Decimal)
            };
            mySqlParameters[0].Value = "XZ_PurchaseDtl_PurchasingManagement";
            mySqlParameters[1].Value = PurchaseID;
            mySqlParameters[2].Value = CommodityInforID;
            //mySqlParameters[3].Value = PurchaseCount;
            //mySqlParameters[4].Value = TotalMny;
            int myDataTable = myDALMethod.UpdateData("Frm_PurchasingManagement", mySqlParameters);
            return myDataTable;
        }
        #endregion

页面功能代码

private void B_BaoC_Click(object sender, RoutedEventArgs e)
        {
            #region 判断页面数据再获取值新增
            try
            {
                if (tbMemberCradNo.Text.ToString() != "")
                {
                    //获取页面数据
                    //string StaffID = CBO_SupplierInfor.Text.ToString().Trim();
                    int StaffID = Convert.ToInt32(CBO_WYY.SelectedValue);
                    int WarehouseID = Convert.ToInt32(CBO_CangKu.SelectedValue);
                    int SupplierInforID = Convert.ToInt32(CBO_SupplierInfor.SelectedValue);
                    string PurchaseNo = tbMemberCradNo.Text.ToString().Trim();
                    DateTime PurchaseDate = Convert.ToDateTime(DP_PurchaseDate.Text.ToString());
                    //float ShouldMny = TB_DNM.Text.ToString().Trim();
                    Decimal ShouldMny = Convert.ToDecimal( TB_DNM.Text.ToString());
                    Decimal RealityMny = Convert.ToDecimal(NB.Text.ToString());
                    Boolean Audit = true;
                    
                    DataTable resules = myFrm_SupplierInformationClient.XZ_Purchase_PurchasingManagement(StaffID, WarehouseID, SupplierInforID, PurchaseNo, PurchaseDate, ShouldMny, RealityMny, Audit).Tables[0];
                    
                    int PurchaseID = Convert.ToInt32(resules.Rows[0][0].ToString());
                    //判断返回数据行resules.Rows.Count
                    if (resules.Rows.Count > 0)
                    {
                        int intNeighborCount = 0;
                        
                        for (int i = 0; i < dgTraveller.Items.Count; i++)
                        {
                            if (((DataRowView)dgTraveller.Items[i]).Row["CommodityInforID"].ToString() != "")
                            {
                                int CommodityInforID = Convert.ToInt32(((DataRowView)dgTraveller.Items[i]).Row["CommodityInforID"]);
                                //int PurchaseCount = Convert.ToInt32(((DataRowView)dgTraveller.Items[i]).Row["PurchaseCount"]);
                                //Decimal TotalMny = Convert.ToDecimal(((DataRowView)dgTraveller.Items[i]).Row["TotalMny"]);
                                intNeighborCount = Convert.ToInt32(myFrm_SupplierInformationClient.XZ_PurchaseDtl_PurchasingManagement(PurchaseID,CommodityInforID));
                            }
                        }
                        //判断是否执行成功
                        if (intNeighborCount > 0)
                        {
                            MessageBoxResult dr = MessageBox.Show("新增采购数据成功!", "系统提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                            if (dr == MessageBoxResult.OK)
                            { this.Close();}
                        }
                    }
                }
                else
                {MessageBox.Show("请填写数据。");}
             }
            catch (Exception)
            { throw;}
           #endregion
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值