PDA

View Full Version : چجوری میشه عکسی رو که تو بانک ذخیره شده رو پس از بازیابی تو picture box نمایش داد؟



mnsh87
جمعه 03 مهر 1388, 21:41 عصر
چجوری میشه عکسی رو که تو بانک ذخیره شده رو پس از بازیابی تو picture box نمایش داد؟

meitti
شنبه 04 مهر 1388, 11:24 صبح
SqlCommand cmd = new SqlCommand("select imagecolumn from tablename where id = 1");
SqlDataReader dataReader = cmd.ExecuteReader();
byte[] imageBytes = (byte[]) imageReader.GetValue(0);
MemoryStream ms = new MemoryStream(imageBytes);
ms.Position = 0;
ms.Seek(0, SeekOrigin.Begin);
picturbox.Image = System.Drawing.Image.FromStream(ms);
picturbox.SizeMode = PictureBoxSizeMode.StretchImage;
ms.Flush();
ms.Close();
.
.
.
.

majidsoft
یک شنبه 05 مهر 1388, 14:47 عصر
با سلام من این کد را به vb تبدیل کردم واین ایراد رو می گیره
Error 3 Name 'imageReader' is not declared.


Dim cmd As New SqlCommand("select imagecolumn from tablename where id = 1")
Dim dataReader As SqlDataReader = cmd.ExecuteReader()
Dim imageBytes As Byte() = DirectCast(imageReader.GetValue(0), Byte())
Dim ms As New MemoryStream(imageBytes)
ms.Position = 0
ms.Seek(0, SeekOrigin.Begin)
PictureBox1.Image = System.Drawing.Image.FromStream(ms)
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
ms.Flush()
ms.Close()

mn_zandy63
یک شنبه 05 مهر 1388, 23:18 عصر
به جای imageReader بنویس dataReader

majidsoft
یک شنبه 05 مهر 1388, 23:56 عصر
با تشکر من کد را اصلاح کردم ولی در همان قسمت datareader این پیغام را میدهد
Invalid attempt to read when no data is present.

Dim Cnn As SqlConnection = Fn_Get_SqlConnection()
Dim cmd As New SqlCommand("select * from information where code=12345678", Cnn)
Cnn.Open()
Dim dataReader As SqlDataReader = cmd.ExecuteReader()
Dim imageBytes As Byte() = DirectCast(dataReader.GetValue(0), Byte())
Dim ms As New MemoryStream(imageBytes)
ms.Position = 0
ms.Seek(0, SeekOrigin.Begin)
PictureBox1.Image = System.Drawing.Image.FromStream(ms)
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
ms.Flush()
ms.Close()
Cnn.Close()

راستی ستون مورد نظر را در کدام قسمت مشخص می کنیم اسم ستون من aks می باشد که باید از آنجا عکس مورد نظ را بخواند

mn_zandy63
دوشنبه 06 مهر 1388, 00:19 صبح
خب آیا همچین کدی وجود داره اصلا داخل دیتابیست؟ (12345678)
در دستور Select ت نوشتی * یعنی همه فیلدها رو Select کرده، بعد اونجا که نوشتی GetValue(0) یعنی اولین ستون از رکورد برگشتی. پیشنهاد میکنم ستون ها رو در دستور Select ت مشخص کن یعنی دقیقا اسم اون ستون رو بنویس که بعدا اگه Structure جدولت عوض شد، ستون مثلا 0 اگه رفت ستون 2 مشکلی پیش نیاد.
مثلا بنویس SELECT AKS, Col1, Col2, ... FROM information WHERE code = 12345678 که ستون عکس مورد نظرت هم دقیقا ستون اول رکورد بازگشتی باشه.

majidsoft
دوشنبه 06 مهر 1388, 00:31 صبح
با تشکر از شما
بله دوست عزیز همچین کدی 12345678 در دیتابیس موجود است من اون select رو هم درست کرده بودم ولی باز هم می زنه دیتا موجود نیست

majidsoft
دوشنبه 06 مهر 1388, 00:39 صبح
Dim Cnn As SqlConnection = Fn_Get_SqlConnection()
Dim Cmd As New SqlCommand("spinsert_information", Cnn)
Dim ms As New MemoryStream
picbox.Image.Save(ms, picbox.Image.RawFormat)
Dim arrimage() As Byte = ms.GetBuffer
Dim param As SqlParameter
Cmd.CommandType = Data.CommandType.StoredProcedure
param = Cmd.Parameters.Add("@aks", Data.SqlDbType.Image)
param.Value = arrimage

Cnn.Open()
Cmd.ExecuteNonQuery()
Cnn.Close()


راستی اگه بدرد می خوره من از این کد برای ذخیره استفاده می کنم

majidsoft
دوشنبه 06 مهر 1388, 23:16 عصر
با سلام
مشکل کد حل شد باید با یک حلقه while داده را می خواندم
راستی یک سوال دیگر من می خواستم عکس توی picbox در هنگام بالا آمدن برنامه پاک شود باید ساده باشد ولی من کدش را پیدا نکردم
لطفا راهنمایی کنید

mn_zandy63
سه شنبه 07 مهر 1388, 23:31 عصر
با سلام
مشکل کد حل شد باید با یک حلقه while داده را می خواندم
راستی یک سوال دیگر من می خواستم عکس توی picbox در هنگام بالا آمدن برنامه پاک شود باید ساده باشد ولی من کدش را پیدا نکردم
لطفا راهنمایی کنید

در هنگام بالا اومدن برنامه؟ یعنی فایل عکس؟ یا Image ی که داخل PictureBox هست؟ مگه خودش خالی نیست؟

موفق باشید.

majidsoft
سه شنبه 07 مهر 1388, 23:55 عصر
با سلام
نه وقتی یکبار عکس رو خوند دیگه می مونه
حالا کار به این مسیله نداریم اگه می شه کد پاک کردن داخل picbox رو اگه می شه برام بزار
با تشکر

mn_zandy63
چهارشنبه 08 مهر 1388, 23:53 عصر
با سلام
نه وقتی یکبار عکس رو خوند دیگه می مونه
حالا کار به این مسیله نداریم اگه می شه کد پاک کردن داخل picbox رو اگه می شه برام بزار
با تشکر

نمیدونم شاید من بد متوجه شدم،
اما آیا منظورت اینه:
pictureBox1.Image = null;