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

نام تاپیک: پایش در سطرهای دیتاگرید

  1. #1
    کاربر دائمی
    تاریخ عضویت
    مرداد 1392
    محل زندگی
    شیراز-کرمانشاه
    پست
    321

    پایش در سطرهای دیتاگرید

    سلام
    یه دیتاگرید دارم که از اطلاعات پر شده
    حالا میخوام یه باتن بذارم وقتی روی اون کلیک کردم
    بر روی سطر مشخص(CurrentRow) یکسری عملیات انجام بشه
    محاسبات که تموم شد
    سطر دوم مورد بررسی و انجام محاسبات قرار بگیره
    و همینطور به تعداد سطرهای دیتا گرید این اتفاق بیفته

    نکته: کدش رو نوشتم درست هم کار میکنه فقط یک مشکلی که داره اینه که فقط بعد از (CurrentRow) یک سطر بیشتر نمیره

    کدش رو میذارم(یکم پیچیدگی داره) ولی ممکنه کمک کنه
    ممنون


    for (int i = 0; i < GrdCost.RowCount; i++)
    {
    GrdCost.Rows[GrdCost.CurrentRow.Index + 1].Selected = true;
    codcost = Convert.ToInt64(GrdCost.Rows[GrdCost.CurrentRow.Index + 1].Cells[4].Value);
    /////////
    var cckey = GrdCost.Rows[GrdCost.CurrentRow.Index + 1].Cells[0].Value;
    var query = _cn.Database.SqlQuery<C_mtscost>("select * from _mtscost where mtscost_cckey='" + cckey + "'");
    var result = query.ToList();
    if (result.Count > 0)
    {
    var ccmts = result[0].mtscost_mtkey;
    var q = _cn.Database.SqlQuery<C_mts>("select * from _mts where mt_Key='" + ccmts + "'");
    GrdMab.DataSource = q.ToList();
    GrdMab.Columns[1].Visible = false;
    GrdMab.Columns[2].Visible = false;
    GrdMab.Columns[5].Visible = false;
    GrdMab.Columns[6].Visible = false;
    GrdMab.Columns[3].HeaderText = "کد مبانی";
    GrdMab.Columns[4].HeaderText = "نام مبانی";
    GrdMab.Columns[7].HeaderText = "واحد سنجش";
    GrdMab.Columns[0].HeaderText = "شماره";
    GrdMab.Columns[3].Width = 75;
    GrdMab.Columns[7].Width = 95;
    GrdMab.Columns[4].Width = 130;
    GrdMab.Columns[0].Width = 50;
    GrdMab.RowHeadersVisible = false;
    GrdDataTashim.Columns.Clear();
    mtkey = Convert.ToInt32(GrdMab.CurrentRow.Cells[0].Value);
    var qr = _cn.Database.SqlQuery<C_mts>("select * from _mts where mt_Parent='" + mtkey + "'");
    GrdDataTashim.DataSource = qr.ToList();
    GrdDataTashim.Columns[0].Visible = false;
    GrdDataTashim.Columns[1].Visible = false;
    GrdDataTashim.Columns[2].Visible = false;
    GrdDataTashim.Columns[5].Visible = false;
    GrdDataTashim.Columns[7].Visible = false;
    GrdDataTashim.Columns[3].HeaderText = "کد مبانی";
    GrdDataTashim.Columns[4].HeaderText = "نام مبانی";
    GrdDataTashim.Columns[6].HeaderText = "مقدار";
    GrdDataTashim.Columns.Add("RialTas", "مبلغ تسهیم شده");
    GrdDataTashim.Columns["RialTas"].Width = 115;
    GrdDataTashim.Columns["RialTas"].DefaultCellStyle.Format = "N0";
    GrdDataTashim.Columns[6].DefaultCellStyle.Format = "N0";
    GrdDataTashim.Columns[3].Width = 75;
    GrdDataTashim.Columns[6].Width = 95;
    GrdDataTashim.Columns[4].Width = 150;
    GrdDataTashim.RowHeadersVisible = false;
    }
    else { GrdMab.Columns.Clear(); }
    if (GrdMab.RowCount > 0)
    {
    FillData();
    CmbGroupMab.Enabled = true;
    SumGrdTashim();
    }
    else
    {
    var mb = new MsgBoxForNullGrdMab();
    mb.ShowDialog();
    CmbGroupMab.Enabled = false;
    GrdDataTashim.Columns.Clear();
    LblSum.ResetText();
    }
    /////////
    var indexforparent = CmbGroupMab.SelectedValue;
    var qur = _cn.Database.SqlQuery<Vw_RelCostCenter>("select* from Vw_RelCostCenter where cc_CostRelationCod ='" + codcost + "' And cc_Parent ='" + indexforparent + "' ");
    var re = qur.ToList();
    for (int ii = 0; ii < re.Count; ii++)
    {
    SumValue += re[ii].cc_RialCostCenter;
    }
    SumMabna = SumValue;
    SumValue = Convert.ToDouble(null);
    SumGrdTashim();
    /////////
    double SumMab = Convert.ToDouble(LblSum.Text);
    double Result = SumMabna / SumMab;
    for (int j = 0; GrdDataTashim.RowCount > j; j++)
    {
    var valmab = Convert.ToDouble(GrdDataTashim.Rows[j].Cells[6].Value);
    GrdDataTashim.Rows[j].Cells["RialTas"].Value = Result * valmab;
    }
    listBox1.Items.Add("محاسبات برای هزینه با کد :'" + codcost + "' انجام شد .");

    }


  2. #2

    نقل قول: پایش در سطرهای دیتاگرید

    فقط میتونم بگم وای از این کدنویسی...
    مشکل فقط استفاده اشتباه از currentrow نیست. خودتون به کدها نگاه کنید و از خودتون بپرسید چرا اینها باید درون حلقه باشند.
    و البته مشکلات دیگر.


    الان سوال اصلی اینه که دارید چه محاسباتی رو روی چه جداولی انجام میدید؟
    از چه راه ارتباطی برای کار روی دیتابیس دارید استفاده میکنید؟

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

  1. پاسخ: 2
    آخرین پست: یک شنبه 23 تیر 1392, 19:31 عصر
  2. پاسخ: 4
    آخرین پست: سه شنبه 17 آبان 1390, 20:27 عصر
  3. تبدیل نوع دیتا تایپ (تبدیل دیتا تایپ های سیستمی وی بی به دیتا تایپ های بانک اطلاعاتی)
    نوشته شده توسط arman_Delta2002 در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 1
    آخرین پست: جمعه 28 مرداد 1390, 22:40 عصر
  4. پاسخ: 2
    آخرین پست: چهارشنبه 17 آذر 1389, 21:08 عصر

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

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