نمایش نتایج 1 تا 13 از 13

نام تاپیک: datagridview شماره ردیف را تکراری نمایش میدهد

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    کاربر دائمی
    تاریخ عضویت
    آبان 1390
    محل زندگی
    تهران
    پست
    227

    Question datagridview شماره ردیف را تکراری نمایش میدهد

    باسلام خدمت دوستان
    در پروژم بعد از اینکه عمل درج انجام میشه، پیغامی گذاشتم مبنی بر اینکه: آیا اقلام جدیدی میخواهید اضافه کنید؟
    که کاربر اگر گزینه Yes را انتخاب کنه، دوباره اطلاعات رو میگیره و با همون شماره فاکتور و تاریخ درج میکنه.
    اطلاعات درج میشه ولی مشکل اینکه شماره ردیفم در گرید ویو تکراری نمایش میده، درحالی که در جدول دیتابیس شماره ردیف درسته درج شده.
    من از کد زیر استفاده کردم:

    private void btnInsert_Click(object sender, EventArgs e)
    {
    db = new LinqToTrazoDataContext();
    var fcTable = new FactorSaleTable();

    fcTable.SaleDate = DateTime.Now;
    fcTable.FactorNo = int.Parse(txtCodFactor.Text);
    fcTable.CommodCodFact = txtSaleCodCommodity.Text;
    fcTable.CommodName = cmbCommodityName.Text;
    fcTable.CompanyName = txtNameCO.Text;
    fcTable.Number = Int16.Parse(txtNumber.Text);
    fcTable.TotalPrice = float.Parse(txtTotalPrice.Text);
    fcTable.Weight = float.Parse(txtWeight.Text);
    fcTable.TotalWeight = float.Parse(txtTotalWeight.Text);
    fcTable.CommodSize = txtSize.Text;
    fcTable.UnitPrice = float.Parse(txtUnitPrice.Text);
    fcTable.Tax = float.Parse(txtTax.Text);
    fcTable.Dicount = float.Parse(txtTax.Text);

    db.FactorSaleTables.InsertOnSubmit(fcTable);
    db.SubmitChanges();
    dgvSalesInvoi.DataSource = db.FactorSaleTables;
    DialogResult result = MessageBox.Show("آیا اقلام جدیدی میخواهید وارد کنید؟",
    "وضعیت خرید", MessageBoxButtons.YesNo, MessageBoxIcon.Question,
    MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
    if (result == DialogResult.Yes)
    {
    txtNumber.Text = "0";
    txtWeight.Text = "0";
    txtTotalWeight.Text = "0";
    txtTotalPrice.Text = "0";

    db = new LinqToTrazoDataContext();
    fcTableYes = new FactorSaleTable();
    fcTableYes.SaleDate = DateTime.Now;
    fcTableYes.FactorNo = int.Parse(txtCodFactor.Text);
    fcTableYes.CommodCodFact = txtSaleCodCommodity.Text;
    fcTableYes.CommodName = cmbCommodityName.Text;
    fcTableYes.CompanyName = txtNameCO.Text;
    fcTableYes.Number = Int16.Parse(txtNumber.Text);
    fcTableYes.TotalPrice = float.Parse(txtTotalPrice.Text);
    fcTableYes.Weight = float.Parse(txtWeight.Text);
    fcTableYes.TotalWeight = float.Parse(txtTotalWeight.Text);
    fcTableYes.CommodSize = txtSize.Text;
    fcTableYes.UnitPrice = float.Parse(txtUnitPrice.Text);
    fcTableYes.Tax = float.Parse(txtTax.Text);
    fcTableYes.Dicount = float.Parse(txtTax.Text);

    db.FactorSaleTables.InsertOnSubmit(fcTableYes);
    db.SubmitChanges();
    dgvSalesInvoi.DataSource = db.FactorSaleTables;
    }
    else if (result == DialogResult.No)
    {
    var lastRecord = db.FactorSaleTables.Select(fn => fn.FactorNo);
    txtCodFactor.Text = (lastRecord.Max() + 1).ToString();
    txtNumber.Clear();
    txtWeight.Clear();
    txtTotalWeight.Clear();
    txtTotalPrice.Clear();
    }
    if (btnInsert.Text == "ویرایش")
    {
    SelectedIndexId = int.Parse(dgvSalesInvoi.CurrentRow.Cells["RowFact"].Value.ToString());

    db = new LinqToTrazoDataContext();
    var fcTableEdit = db.FactorSaleTables.Where(c=>c.RowFact==SelectedIn dexId).Single();
    //SaleDate = DateTime.Now,
    //FactorNo = int.Parse(txtCodFactor.Text),
    fcTableEdit.CommodCodFact = txtSaleCodCommodity.Text;
    fcTableEdit.CommodName = cmbCommodityName.Text;
    fcTableEdit.CompanyName = txtNameCO.Text;
    fcTableEdit.Number = Int16.Parse(txtNumber.Text);
    fcTableEdit.TotalPrice = float.Parse(txtTotalPrice.Text);
    fcTableEdit.Weight = float.Parse(txtWeight.Text);
    fcTableEdit.TotalWeight = float.Parse(txtTotalWeight.Text);
    fcTableEdit.CommodSize = txtSize.Text;
    fcTableEdit.UnitPrice = float.Parse(txtUnitPrice.Text);
    fcTableEdit.Tax = float.Parse(txtTax.Text);
    fcTableEdit.Dicount = float.Parse(txtTax.Text);

    btnInsert.Text = "درج";
    //db.FactorSaleTables.InsertOnSubmit(fcTableEdit);
    db.SubmitChanges();
    dgvSalesInvoi.DataSource = db.FactorSaleTables;

    txtNumber.Clear();
    txtWeight.Clear();
    txtTotalWeight.Clear();
    txtTotalPrice.Clear();
    }
    }


    ردیف جدل فاکتورم در دیتابیس بصورت زیره:
    sqlFator.jpg
    همانطور که میبینید ریف تکراری ندارم.
    ولی در گریدویم پروژم بعد از اینکه هر بار قبول میکنم که میخوام اقلام جدید وارد کنم،ردیف تکراری در گرید ویو نمایش میده، ولی برا اقلام جدید نه،برنامه درست کار میکنه، فقط شماره ردیف به اندازه تعداد اقلامی که با یک شماره فاکتور ثبت شده فاصلست،گرید ویو پروژه بصورت زیره:
    grFactor.jpg


    ولی شماره ردیف در دیتابیس درست درج شده.
    ممنون میشم راهنماییم کنید که کدم کجاش مشکل داره و چه کدی باید بجاش بنویسم؟
    اگر تکنیک برنامم هم مشکل داره یا نظری بهتر دارید ممنون میشم راهنماییم کنید.
    با تشکر
    آخرین ویرایش به وسیله bmvgod : پنج شنبه 13 دی 1397 در 18:47 عصر

تاپیک های مشابه

  1. پاسخ: 4
    آخرین پست: جمعه 09 آبان 1399, 17:49 عصر
  2. پاسخ: 4
    آخرین پست: پنج شنبه 14 آبان 1394, 23:09 عصر
  3. سوال: کپی کردن کامل یک DataGridView به DataGridView دیگر
    نوشته شده توسط ahangari365 در بخش C#‎‎
    پاسخ: 3
    آخرین پست: دوشنبه 08 اردیبهشت 1393, 18:38 عصر
  4. پاسخ: 8
    آخرین پست: شنبه 21 اردیبهشت 1392, 12:33 عصر
  5. پاسخ: 2
    آخرین پست: پنج شنبه 11 خرداد 1391, 08:32 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •