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

نام تاپیک: خطای Object cannot be cast from DBNull to other types

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    Babol
    پست
    80

    خطای Object cannot be cast from DBNull to other types

    سلام دوستان.
    من این کد رو در برنامه استفاده کردم و روی خط 20، خطای Object cannot be cast from DBNull to other types میدده.نه مقدار null تو دیتابیس دارم و Boolean.
    لطفا راهنمایی کنید.ممنون

    private void BindGrid()
    {
    //پر کردن دیتاگرید
    DataTable DT = new DataTable();
    SqlDataAdapter DAL1 = new SqlDataAdapter("SELECT * from tbl1", scn);
    SqlDataAdapter DAL2 = new SqlDataAdapter("SELECT * from tbl2", scn);
    DAL2.Fill(DT);
    DAL1.Fill(DT);
    dataGridView1.DataSource = DT;
    BindingSource1.DataSource = DT;


    }
    private void sumdvg()
    {
    // عملیات جمع برای دو ستون دیتاگرید
    int sumb = new int();
    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
    if (Convert.ToBoolean(this.dataGridView1.Rows[0].Cells[4].Value) == false) //خطا در این خط اتفاق می افتد
    {
    sumb += Convert.ToInt32(row.Cells["cell4"].Value);
    lblb.Text = sumb.ToString("n0");
    }
    }
    int sumd = new int();
    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
    if (Convert.ToBoolean(this.dataGridView1.Rows[0].Cells[5].Value) == true)
    {
    sumd += Convert.ToInt32(row.Cells["cell5"].Value);
    }
    }
    lbld.Text = sumd.ToString("n0");


    }

    private void txtb_SelectedValueChanged(object sender, EventArgs e)
    {
    BindGrid();


    BindingSource1.Filter = string.Format("bnk LIKE '%{0}%'", txtb.Text);
    sumdvg();
    }


    آخرین ویرایش به وسیله Mahmoud.Afrad : جمعه 19 آبان 1396 در 23:58 عصر

  2. #2

    نقل قول: خطای Object cannot be cast from DBNull to other types

    نقل قول نوشته شده توسط Iman7228 مشاهده تاپیک
    سلام دوستان.
    من این کد رو در برنامه استفاده کردم و روی خط 20، خطای Object cannot be cast from DBNull to other types میدده.نه مقدار null تو دیتابیس دارم و Boolean.
    لطفا راهنمایی کنید.ممنون

    private void BindGrid()
    {
    //پر کردن دیتاگرید
    DataTable DT = new DataTable();
    SqlDataAdapter DAL1 = new SqlDataAdapter("SELECT * from tbl1", scn);
    SqlDataAdapter DAL2 = new SqlDataAdapter("SELECT * from tbl2", scn);
    DAL2.Fill(DT);
    DAL1.Fill(DT);
    dataGridView1.DataSource = DT;
    BindingSource1.DataSource = DT;


    }
    private void sumdvg()
    {
    // عملیات جمع برای دو ستون دیتاگرید
    int sumb = new int();
    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
    if (Convert.ToBoolean(this.dataGridView1.Rows[0].Cells[4].Value) == false) //خطا در این خط اتفاق می افتد
    {
    sumb += Convert.ToInt32(row.Cells["cell4"].Value);
    lblb.Text = sumb.ToString("n0");
    }
    }
    int sumd = new int();
    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
    if (Convert.ToBoolean(this.dataGridView1.Rows[0].Cells[5].Value) == true)
    {
    sumd += Convert.ToInt32(row.Cells["cell5"].Value);
    }
    }
    lbld.Text = sumd.ToString("n0");


    }

    private void txtb_SelectedValueChanged(object sender, EventArgs e)
    {
    BindGrid();


    BindingSource1.Filter = string.Format("bnk LIKE '%{0}%'", txtb.Text);
    sumdvg();
    }



    خوب داره میگه که اون رکورد دارای داده ی Null هست . و نمیتونه Null رو تبدیل کنه .
    داده های که داری میخونی رو چک کن تویه دیتابیس . شما داری تو برنامه میگی Null رو تبدیل کن و برنامه نمیتونه

  3. #3
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: خطای Object cannot be cast from DBNull to other types

    این رو چک کن


    private void BindGrid()
    {
    //پر کردن دیتاگرید
    DataTable DT = new DataTable();
    SqlDataAdapter DAL1 = new SqlDataAdapter("SELECT * from tbl1", scn);
    SqlDataAdapter DAL2 = new SqlDataAdapter("SELECT * from tbl2", scn);
    DAL2.Fill(DT);
    DAL1.Fill(DT);
    dataGridView1.DataSource = DT;
    BindingSource1.DataSource = DT;


    }
    private void sumdvg()
    {
    // عملیات جمع برای دو ستون دیتاگرید
    int sumb = new int();
    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
    if(this.dataGridView1.Rows[0].Cells[4].Value)!=DBNull.Value)
    {
    if (Convert.ToBoolean(this.dataGridView1.Rows[0].Cells[4].Value) == false) //خطا در این خط اتفاق می افتد
    {
    sumb += Convert.ToInt32(row.Cells["cell4"].Value);
    lblb.Text = sumb.ToString("n0");
    }
    }
    }
    int sumd = new int();
    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
    if(this.dataGridView1.Rows[0].Cells[5].Value)!=DBNull.Value)
    {
    if (Convert.ToBoolean(this.dataGridView1.Rows[0].Cells[5].Value) == true)
    {
    sumd += Convert.ToInt32(row.Cells["cell5"].Value);
    }
    }
    }
    lbld.Text = sumd.ToString("n0");


    }

    private void txtb_SelectedValueChanged(object sender, EventArgs e)
    {
    BindGrid();


    BindingSource1.Filter = string.Format("bnk LIKE '%{0}%'", txtb.Text);
    sumdvg();
    }

  4. #4
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    Babol
    پست
    80

    نقل قول: خطای Object cannot be cast from DBNull to other types

    نقل قول نوشته شده توسط jafarpalideh مشاهده تاپیک
    خوب داره میگه که اون رکورد دارای داده ی Null هست . و نمیتونه Null رو تبدیل کنه .
    داده های که داری میخونی رو چک کن تویه دیتابیس . شما داری تو برنامه میگی Null رو تبدیل کن و برنامه نمیتونه

    ممنون از شما.

    رامین مرادی
    نقل قول: خطای Object cannot be cast from DBNull to other types
    این رو چک کن
    ممنون درست شد.
    اما من تو کمبوباکسم سه تا آیتم دارم که یکسری اطلاعات با انتخاب هرکدام، تو دیتاگرید لود میشه و جمع دوتا ستون دیتاگرید هم در لیبلهای مخصوص نمایش داده میشه. الان اتفاقی که می افته اینه که برای آیتم های دوم و سوم، ستوها جمع گرفته میشه اما برای آیتم اول مقدار آیتم قبلی رو نشون میده.
    یعنی اگه از آیتم سوم برم به آیتم اول، مقدار آیتم سوم رو برای آیتم اول نمایش میده. اگه از آیتم دوم برم، مقدار آیتم دوم رو برای آیتم اول نشون میده
    آخرین ویرایش به وسیله Iman7228 : شنبه 20 آبان 1396 در 16:24 عصر

  5. #5
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: خطای Object cannot be cast from DBNull to other types

    نقل قول نوشته شده توسط Iman7228 مشاهده تاپیک
    ممنون از شما.



    ممنون درست شد.
    اما من تو کمبوباکسم سه تا آیتم دارم که یکسری اطلاعات با انتخاب هرکدام، تو دیتاگرید لود میشه و جمع دوتا ستون دیتاگرید هم در لیبلهای مخصوص نمایش داده میشه. الان اتفاقی که می افته اینه که برای آیتم های دوم و سوم، ستوها جمع گرفته میشه اما برای آیتم اول مقدار آیتم قبلی رو نشون میده.
    یعنی اگه از آیتم سوم برم به آیتم اول، مقدار آیتم سوم رو برای آیتم اول نمایش میده. اگه از آیتم دوم برم، مقدار آیتم دوم رو برای آیتم اول نشون میده
    خواهش میکنم. منم اینو از همینجا توسط دوستان یاد گرفتم.
    این کد رو هم بیزحمت چک کنید. در صورت null بودن مقدار صفر رو محاسبه میکنه(البته نمیدونم این مقداری که من میذارم مناسب کار شما هست یا نه )


    private void BindGrid()
    {
    //پر کردن دیتاگرید
    DataTable DT = new DataTable();
    SqlDataAdapter DAL1 = new SqlDataAdapter("SELECT * from tbl1", scn);
    SqlDataAdapter DAL2 = new SqlDataAdapter("SELECT * from tbl2", scn);
    DAL2.Fill(DT);
    DAL1.Fill(DT);
    dataGridView1.DataSource = DT;
    BindingSource1.DataSource = DT;
    }
    private void sumdvg()
    {
    // عملیات جمع برای دو ستون دیتاگرید
    int sumb = new int();
    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
    if(this.dataGridView1.Rows[0].Cells[4].Value)!=DBNull.Value)
    {
    if (Convert.ToBoolean(this.dataGridView1.Rows[0].Cells[4].Value) == false) //خطا در این خط اتفاق می افتد
    {
    sumb += Convert.ToInt32(row.Cells["cell4"].Value);
    lblb.Text = sumb.ToString("n0");
    }
    }
    else
    {
    sumb += 0;
    lblb.Text = sumb.ToString("n0");
    }
    }
    int sumd = new int();
    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
    if(this.dataGridView1.Rows[0].Cells[5].Value)!=DBNull.Value)
    {
    if (Convert.ToBoolean(this.dataGridView1.Rows[0].Cells[5].Value) == true)
    {
    sumd += Convert.ToInt32(row.Cells["cell5"].Value);
    }
    }
    else
    {
    sumb += 0;
    lblb.Text = sumb.ToString("n0");
    }

    }
    lbld.Text = sumd.ToString("n0");
    }

    private void txtb_SelectedValueChanged(object sender, EventArgs e)
    {
    BindGrid();
    BindingSource1.Filter = string.Format("bnk LIKE '%{0}%'", txtb.Text);
    sumdvg();
    }


  6. #6
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    Babol
    پست
    80

    نقل قول: خطای Object cannot be cast from DBNull to other types

    متاسفانه جواب نمیده.
    مشکل پابرجاست

  7. #7
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: خطای Object cannot be cast from DBNull to other types


    BindGrid();
    BindingSource1.Filter = string.Format("bnk LIKE '%{0}%'", txtb.Text);
    sumdvg();


    شما این کد رو باید درتمام کومبوها تکرار کنید. این کارو کردید؟ کاش پروژتون رو آپلود کنید
    آخرین ویرایش به وسیله ژیار رحیمی : دوشنبه 22 آبان 1396 در 13:20 عصر

  8. #8
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    Babol
    پست
    80

    نقل قول: خطای Object cannot be cast from DBNull to other types

    ببینین، من یه کمبو دارم که با دو تا آیتم هاش، اطلاعات از دوتا جدول فراخونی میشه.
    الان دسترسی ندارم به پروژه.در اسرع وقت نمونشو میزارم.ممنون
    آخرین ویرایش به وسیله Iman7228 : دوشنبه 22 آبان 1396 در 16:07 عصر

  9. #9
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    Babol
    پست
    80

    نقل قول: خطای Object cannot be cast from DBNull to other types

    نقل قول نوشته شده توسط Iman7228 مشاهده تاپیک
    ببینین، من یه کمبو دارم که از دو تا آیتم هاش از دوتا جدول فراخونی میشه.
    الان دسترسی ندارم به پروژه.در اسرع وقت نمونشو میزارم.ممنون
    اینم نمونه کاری که میخام انجام بدم
    فایل های ضمیمه فایل های ضمیمه

  10. #10

    نقل قول: خطای Object cannot be cast from DBNull to other types

    بایندینگ سورس را به دیتاتیبل متصل نکردید. به صورت زیر عمل کنید
            private void BindGrid()
    {
    //پر کردن دیتاگرید
    DataTable dt = new DataTable();
    SqlDataAdapter dal1 = new SqlDataAdapter("SELECT * from TBL2 union SELECT * from TBL1", _con);
    dal1.Fill(dt);
    dataGridView1.AutoGenerateColumns = false;
    _bindingSource1.DataSource = dt;
    dataGridView1.DataSource = _bindingSource1;
    for (int i = 0; i < dataGridView1.Rows.Count; i++)
    {
    dataGridView1.Rows[i].Cells[0].Value = i + 1;
    }
    }

    در رویداد تغییر کمبوباکس، اگر از Text استفاده کنید مقدار قبلی را به شما خواهد داد. برای بدست آوردن مقدار جدید از SelectedText یا پراپرتی‌های مشابه استفاده کنید
            private void CMBBank_SelectedIndexChanged(object sender, EventArgs e)
    {
    BindGrid();
    _bindingSource1.Filter = string.Format("bank LIKE '%{0}%'", CMBBank.SelectedText);
    Sumdvg();
    }

  11. #11
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    Babol
    پست
    80

    نقل قول: خطای Object cannot be cast from DBNull to other types

    نقل قول نوشته شده توسط Mahmoud.Afrad مشاهده تاپیک
    بایندینگ سورس را به دیتاتیبل متصل نکردید. به صورت زیر عمل کنید
            private void BindGrid()
    {
    //پر کردن دیتاگرید
    DataTable dt = new DataTable();
    SqlDataAdapter dal1 = new SqlDataAdapter("SELECT * from TBL2 union SELECT * from TBL1", _con);
    dal1.Fill(dt);
    dataGridView1.AutoGenerateColumns = false;
    _bindingSource1.DataSource = dt;
    dataGridView1.DataSource = _bindingSource1;
    for (int i = 0; i < dataGridView1.Rows.Count; i++)
    {
    dataGridView1.Rows[i].Cells[0].Value = i + 1;
    }
    }

    در رویداد تغییر کمبوباکس، اگر از Text استفاده کنید مقدار قبلی را به شما خواهد داد. برای بدست آوردن مقدار جدید از SelectedText یا پراپرتی‌های مشابه استفاده کنید
            private void CMBBank_SelectedIndexChanged(object sender, EventArgs e)
    {
    BindGrid();
    _bindingSource1.Filter = string.Format("bank LIKE '%{0}%'", CMBBank.SelectedText);
    Sumdvg();
    }

    ممنون ولی جواب نمیده

  12. #12

    نقل قول: خطای Object cannot be cast from DBNull to other types

    اسکریپت جدول ها را همراه پروژه باید قرار بدید تا بتوانیم تست کنیم.

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

  1. سوال: خطای Object cannot be cast from DBNull to other types.
    نوشته شده توسط hadi vafaii در بخش C#‎‎
    پاسخ: 3
    آخرین پست: پنج شنبه 12 آذر 1394, 13:00 عصر
  2. خطای ActionBarActivity cannot be resolved to a type
    نوشته شده توسط peymanf11 در بخش Android Studio
    پاسخ: 0
    آخرین پست: یک شنبه 12 مرداد 1393, 17:15 عصر
  3. سوال: خطای startIndex cannot be larger than length of string.
    نوشته شده توسط bftarane در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: یک شنبه 08 بهمن 1391, 12:55 عصر
  4. سوال: منشاء خطای Provider cannot be found. It may not be properly installed
    نوشته شده توسط هواشناس در بخش Classic ASP
    پاسخ: 1
    آخرین پست: سه شنبه 01 فروردین 1391, 12:48 عصر
  5. پاسخ: 2
    آخرین پست: شنبه 13 آذر 1389, 16:57 عصر

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

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