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

نام تاپیک: مشکل در لود فیلد خالی عکس

  1. #1

    مشکل در لود فیلد خالی عکس

    سلام
    من یه عکس رو تو پایگاه اس کیو ال سیو میکنم، تو سیو و خوندن عکس هیچ مشکلی نیست، ولی اگر فیلد عکس خالی باشه ارور میده، کدم اینه:

    byte[] pic = (byte[])dreader["nashr_pic"];
    if (pic!= null)
    {
    if (pic.Length > 1)
    {
    MemoryStream stream = new MemoryStream();
    stream.Write(pic, 0, pic.Length);
    Bitmap img = new Bitmap(stream);
    tasvir_jeld_picbox.Image = img;
    }
    else
    tasvir_jeld_picbox.Image = null;

    }

    از کدی که قرمز کردم این ارور رو میگیره:
    Unable to cast object of type 'System.DBNull' to type 'System.Byte[]'.

    مشکل چیه؟!

  2. #2
    کاربر دائمی آواتار atryad
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    شیراز
    پست
    255

    نقل قول: مشکل در لود فیلد خالی عکس

    نقل قول نوشته شده توسط shaima مشاهده تاپیک
    سلام
    من یه عکس رو تو پایگاه اس کیو ال سیو میکنم، تو سیو و خوندن عکس هیچ مشکلی نیست، ولی اگر فیلد عکس خالی باشه ارور میده، کدم اینه:

    byte[] pic = (byte[])dreader["nashr_pic"];
    if (pic!= null)
    {
    if (pic.Length > 1)
    {
    MemoryStream stream = new MemoryStream();
    stream.Write(pic, 0, pic.Length);
    Bitmap img = new Bitmap(stream);
    tasvir_jeld_picbox.Image = img;
    }
    else
    tasvir_jeld_picbox.Image = null;

    }

    از کدی که قرمز کردم این ارور رو میگیره:
    Unable to cast object of type 'System.DBNull' to type 'System.Byte[]'.

    مشکل چیه؟!
    خوب دوست عزیز سلام
    این عادی هست وقتی که هیچ اطلاعاتی توی فیلد عکس نیست باید error بگیره سیستم که نمیتونه null رو به byte تبدیل کند'System.DBNull' to type 'System.Byte
    که بایک try و cath درست میشه
    من هم همینطور بود که با کد زیر درست میشه

    try
    {
    MemoryStream ms = newMemoryStream((byte[])(dataGridView1.Rows[dataGridView1.SelectedCells[0].RowIndex].Cells[9].Value));

    pictureBox1.BackgroundImage = Image.FromStream(ms);
    }
    catch
    {
    MessageBox.Show("عکس ندارد", MessageBoxButtons.OK, MessageBoxIcon.Warning);
    }


    که خودش میتونه باعث هشدار به کاربر بشه
    و یا میتونی هر فیلدی که خالی باشه یه عکس خاص (مثلا یه ضربدر قرمز بزرگ) بذاری تا درست بشه
    با تشکر
    آخرین ویرایش به وسیله atryad : دوشنبه 23 شهریور 1388 در 04:49 صبح

  3. #3

    نقل قول: مشکل در لود فیلد خالی عکس

    یعنی واقعا هیچ راهی جز try , catch یا گذاشتن یه عکس ضربدر نیست؟!
    خب پس اون موقع ما اجازه null بودنی که تو دیتابیس قرار میدیم به چه دردی میخوره؟!

  4. #4

    نقل قول: مشکل در لود فیلد خالی عکس

    با شرط زیر مشکل شما حل میشه :

    if(dreader["nashr_pic"] != null)
    //statment

  5. #5

    نقل قول: مشکل در لود فیلد خالی عکس

    نقل قول نوشته شده توسط hozouri مشاهده تاپیک
    با شرط زیر مشکل شما حل میشه :

    if(dreader["nashr_pic"] != null)
    //statment
    سلام
    من کدم رو به این شکل تصحیح کردم:

    if (dreader["nashr_pic"]!= null)
    {
    pic=(byte[])dreader["nashr_pic"];
    if (pic.Length > 1)
    {
    MemoryStream stream = new MemoryStream();
    stream.Write(pic, 0, pic.Length);
    Bitmap img = new Bitmap(stream);
    tasvir_jeld_picbox.Image = img;
    }
    else
    tasvir_jeld_picbox.Image = null;

    }


    ولی بازم از خطی که مشخص کردم همون ارور قبلی رو میگیره! یعنی چه فیلد خالی باشه چه پر وارد دستور if میشه!! و اگر فیلد خالی باشه از این خط ارور میگیره...
    آخرین ویرایش به وسیله shaima : دوشنبه 23 شهریور 1388 در 12:42 عصر

  6. #6

    نقل قول: مشکل در لود فیلد خالی عکس

    دوست عزیز من نمی دونم شما چه طور کد نوشتید اما باید به شکل زیر مشکل شما حل بشه :


    if(dreader["nashr_pic"] != null)
    }
    byte[] pic = (byte[])dreader["nashr_pic"];
    .
    .
    .
    {

  7. #7

    نقل قول: مشکل در لود فیلد خالی عکس

    نقل قول نوشته شده توسط hozouri مشاهده تاپیک
    دوست عزیز من نمی دونم شما چه طور کد نوشتید اما باید به شکل زیر مشکل شما حل بشه :


    if(dreader["nashr_pic"] != null)
    }
    byte[] pic = (byte[])dreader["nashr_pic"];
    .
    .
    .
    {
    من پاسخ قبلی رو که داده بودم ویرایش کردم، یه بار دیگه ببینید، من هم دقیقا همین کد رو نوشتم...

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

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