• 1397/08/24

ذخیره فاکتور فروش :

سلام مهندس ، من فاکتور فروشم حاوی دو بانک : 1- فاکتور 2- جزییات فاکتور هست . خواستم ببینم چرا دستورdb.save پیغام خطا میده .

من دو بانک رو باید چطور ذخیره کنم . ممنون

       private void BtnSave_Click(object sender, EventArgs e)
        {
            //try
            //{

            T_Factor Factor = new T_Factor()
            {
                Factor_Barname = txtbarnameh.Text,
                Factor_Cardtext = txtcartex.Text,
                Factor_Cost = Convert.ToInt64(txtcostroad.Value),
                Factor_CutPrice = Convert.ToInt64(txtcutprice.Value),
                Factor_Date = txtdate.Text,
                Factor_Des = txtdes.Text,
                Factor_FactorNumber = txtfactorcode.Text,
                Factor_FactorType = FactorType,
                Factor_Id = factorId,
                Factor_PersonId = Convert.ToInt32(txtpesonid.Text),
                Factor_Price = Convert.ToInt32(txttotalprice.Value),
                Factor_Sum = Convert.ToInt64(txtsumfactor.Value)

            };
            for (int i = 0; i < dgshowproduct.Rows.Count; i++)
            {
                T_FactorDetail FactorDetail = new T_FactorDetail()
                {
                    FactorDetail_DetailValue = Convert.ToDouble(dgshowproduct.Rows[i].Cells[2].Value),
                    FactorDetail_FactorId = db.FactorRepository.GetMaxFactorNumber(),
                    FactorDetail_DriverId = Convert.ToInt32(txtdriverid.Text),
                    FactorDetail_Id = FactorDetailId,
                    FactorDetail_InsId = Convert.ToInt32(txtinsid.Text),
                    FactorDetail_PathId = Convert.ToInt32(txtpathid.Text),
                    FactorDetail_CostUnit = Convert.ToInt64(dgshowproduct.Rows[i].Cells[3].Value),
                    FactorDetail_Price = Convert.ToInt64(dgshowproduct.Rows[i].Cells[1].Value) * Convert.ToInt64(dgshowproduct.Rows[i].Cells[2].Value),
                    FactorDetail_ProductId = Convert.ToInt32(dgshowproduct.Rows[i].Cells[5].Value),
                    FactorDetail_UnitPrice = Convert.ToInt64(dgshowproduct.Rows[i].Cells[1].Value)
                };
               
                db.FactorDetailRepository.InsertFactorDetail(FactorDetail);
                db.save();
            }

            if (factorId == 0) // حالت اضافه هست
            {

                db.FactorRepository.InsertFactor(Factor);       

                MessageBoxFarsi.Show("رکورد با موفقیت اضافه گردید .", "پیغام", MessageBoxFarsiButtons.OK, MessageBoxFarsiIcon.Information);
            }
            else // حالت ویرایش هست
            {
                Factor.Factor_Id = factorId;
                db.FactorRepository.UpdateFactor(Factor);
                MessageBoxFarsi.Show("رکورد با موفقیت ویرایش گردید .", "پیغام", MessageBoxFarsiButtons.OK, MessageBoxFarsiIcon.Information);
            }
            db.save();
            DialogResult = DialogResult.OK;

        }

  • 1397/08/24
  • ساعت 22:32

سلام 

متن خطا ؟ 



  • 1397/08/25
  • ساعت 14:08


  • 1397/08/25
  • ساعت 15:10

متن خطا کاملا گویاست 

کلید اصلی و خارجی را بررسی کنید 

احتمالا کلید اصلی خالی است


  • 1397/08/25
  • ساعت 20:10

بله همین درسته مهندس ، اما من قبلش دستور ذخیره رو میدم .


  • 1397/08/26
  • ساعت 09:05

شاید کلید اصلی جدول Auto Increment نیست 


logo-samandehi