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

نام تاپیک: اشکال در بازیابی image

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

    اشکال در بازیابی image

    روی sql جدولی دارم که یکی از فیلد ها از نوع image هستش.وقتی دیتا ست رو پر میکنم میخوام فیلد عکس مربوط به فلان رکورد رو توی picturebox نشون بدم.لطفا راهنمایی کنید.
    ممنون

  2. #2
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727
    یکی از راههاش اینه :
    ابتدا Index رکورد جاری رو در DataGridView پیدا میکنی و اون رو در یک DataRow ذخیره میکنی،بدین صورت :
    DataTable dt = YourDatasetName.Tables["YourTableName"];
    DataRow newrow = dt.Rows[dataGridView1.CurrentCell.RowIndex];

    بعد برای اینکه اطلاعات فیلد عکستو از آبجکت newrow به PictureBox پاس کنی از کد زیر استفاده کن :
    byte[] content = (byte[])newrow["pic"];
    MemoryStream stream = new MemoryStream(content);
    Bitmap image = new Bitmap(stream);
    pictureBox_madadjoo.Image = image;

    امیدوارم متوجه شده باشی ... هر جا مشکلی داشتی در خدمتم

  3. #3
    کاربر تازه وارد آواتار payam_skandari
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    ایران ...
    پست
    50

    Smile

    بعد از چند ساعت کلنجار بالاخره تونستم خیلی دقیق این کارا رو انجام بدم.
    راه حلش رو هم اینجا میذارم شاید بدرد یه بنده خدایی خورد :

    برای وارد کردن عکسا به tableباید اول اونا رو بصورت باینری کرد و توی یه stream ریخت :
     
    protected static byte[] ReadBitmap2ByteArray(string fileName)
    {
    using(Bitmap image = new Bitmap(fileName))
    {
    MemoryStream stream = new MemoryStream();
    image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
    return stream.ToArray();
    }
    }


    بعد با insert into به جدول فرستادشون :
     
    protected static void StoreBlob2DataBase(byte[] content,string text)
    {
    SqlConnection conn1 = new SqlConnection("Data Source=PDNOTEBOOK\\CSHARPDBPROJECT;Initial Catalog=testDb;Persist Security Info=True;User ID=sa;pwd=a");
    conn1.Open();
    try
    {
    // insert new entry into table
    SqlCommand insert = new SqlCommand(
    "insert into Table_1 (name,pic) values ('"+text+"',@image)", conn1);
    SqlParameter imageParameter =
    insert.Parameters.Add("@image", SqlDbType.Binary);
    imageParameter.Value = content;
    imageParameter.Size = content.Length;
    insert.ExecuteNonQuery();
    }
    finally
    {
    conn1.Close();
    }
    }

    بعد با دو تا دستور پایین این متد ها رو فراخوانی کرد :

     
    byte[] content = ReadBitmap2ByteArray(listBox1.SelectedItem.ToStrin g());
    StoreBlob2DataBase(content,textBox1.Text);

    ----------------------------------
    برای بازیابی عکسها از تیبل اول یه dataset ساختم و بعد :

     
    byte[] content = (byte[])dset1.Tables[0].Rows[listBox2.SelectedIndex][1];
    MemoryStream stream = new MemoryStream(content);
    Image image = new Bitmap(stream);
    pictureBox2.Image = image;
    pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;

    ------------------------------------
    امیدوارم مفید بوده باشه.
    ضمنا منظور از blob هم :binary long object هست.یعنی چیزایی مثل image و ... .

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

  1. کلیک بروی کنترل image اچ تی ام ال
    نوشته شده توسط rezaei manesh در بخش ASP.NET Web Forms
    پاسخ: 8
    آخرین پست: چهارشنبه 11 مرداد 1385, 09:13 صبح
  2. image to pdf
    نوشته شده توسط MortezaDelphi در بخش برنامه نویسی در Delphi
    پاسخ: 0
    آخرین پست: سه شنبه 12 مهر 1384, 13:57 عصر
  3. کار با image در اپلت ها
    نوشته شده توسط zahraakbari در بخش Java SE : نگارش استاندارد جاوا
    پاسخ: 0
    آخرین پست: شنبه 09 مهر 1384, 17:20 عصر
  4. مسیر image
    نوشته شده توسط Tarrah در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 10
    آخرین پست: یک شنبه 22 خرداد 1384, 19:32 عصر

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

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