PDA

View Full Version : سوال: بایند کرد یک فیلد image از sql به یک پیکچرباکس



mina.net
سه شنبه 26 آبان 1388, 11:14 صبح
سلام دوستان
من جستجو کردم ولی چیزی که دقیقا خواست منو براورده کنه پیدا نکردم. من می خوام عکس کالا را همراه سایر مشخصات ثبت و سپس نمایش بدم. از آنجای که همه اطلاعات به textbox ها بایند شده. آیا می تونم فیلد تصویر رو هم به pictucherbox بایند کنم؟ یا حداقل با گرفتن کد کالا از طریق sqlcommand بتونم عکس مورد نظر رو در pictucherbox نمایش بدم؟

DoDoklak
سه شنبه 26 آبان 1388, 18:08 عصر
از چه فیلدی برای ذخیره عکس استفاده کردی؟

بهتره از VarBinary استفاده کنی


از آنجای که همه اطلاعات به textbox ها بایند شده. آیا می تونم فیلد تصویر رو هم به pictucherbox بایند کنم؟

فکر نکنم بتونی بایندش کنی باید اونو بصورت Stream بخونی تا بتونی اونو نمایش بدید

mina.net
سه شنبه 26 آبان 1388, 18:43 عصر
از چه فیلدی برای ذخیره عکس استفاده کردی؟
بهتره از VarBinary استفاده کنی

من از image استفاده کردم. حالا که شما فکر می کنید نمی شه بایند کرد بفرماید چطور می تونم با استفاده از sqlcommand یک عکس را از دیتابیس پیدا و نمایش بدم یعنی تو رویداد textcheng از textboxی که توش کد کالا هست برای این کار استفاده کنم و عکس مورد نظر را پیدا و تو پیکچرباکس نمایش بدم. البته نمونه کد های دیدم ولی با دیتاریدر بود که مشکل منو حل نمی کنه. ممنون می شم یک مثال بزنید.

ACorvinus
سه شنبه 26 آبان 1388, 19:53 عصر
من از image استفاده کردم. حالا که شما فکر می کنید نمی شه بایند کرد بفرماید چطور می تونم با استفاده از sqlcommand یک عکس را از دیتابیس پیدا و نمایش بدم یعنی تو رویداد textcheng از textboxی که توش کد کالا هست برای این کار استفاده کنم و عکس مورد نظر را پیدا و تو پیکچرباکس نمایش بدم. البته نمونه کد های دیدم ولی با دیتاریدر بود که مشکل منو حل نمی کنه. ممنون می شم یک مثال بزنید.


سلام، خیلی بد اخلاق شدیاااااا !

حاجی باید از MemoryStream استفاده کرد توی اینجور موارد .



Dim MemoryStream As IO.MemoryStream

MemoryStream.Write(DR.Item("PictureColumnName"),0,DR.Item("PictureColumnName").Length - 1)
PictureBox.Image = System.Drawing.Image.FromStream(MemoryStream)



و اما:


DR: یک رکوردی هست از جدول شما که نمیدونم چجوری میخوای بدستش بیاری ( یه Select بزن و حاصل رو بریز به یه DataTable یا چه میدونم، هر چی که بعدا بتونی بهش دست پیدا کنی) . در این مثال من فرض رو بر این گذاشتم که جواب Select شما در یه DataTable موجود هست و DR اشاره می کنه به سطر مورد نظر در اون DataTable .


هیچی دیگه، تموم شد .

ACorvinus
سه شنبه 26 آبان 1388, 20:03 عصر
ببخشید .


میدونم میدونی ولی میخواستم یادآوری کنم مقدار پرامتر اول در MemoryStream.Write باید Byte باشه .

چون وقتی یه عکسی رو تو Database ذخیره میکنی حتما تبدیلش کردی به بایت، مگه نه ؟

اگه جواب نداد به جای پارامتر اول اینو بنویس:



Byte.Parse(DR.Item("PictureColumnName").Value)

mina.net
سه شنبه 26 آبان 1388, 20:16 عصر
و اما:
DR: یک رکوردی هست از جدول شما که نمیدونم چجوری میخوای بدستش بیاری ( یه Select بزن و حاصل رو بریز به یه DataTable یا چه میدونم، هر چی که بعدا بتونی بهش دست پیدا کنی) . در این مثال من فرض رو بر این گذاشتم که جواب Select شما در یه DataTable موجود هست و DR اشاره می کنه به سطر مورد نظر در اون DataTable .



هیچی دیگه، تموم شد .


اتفاقا من با همین قسمت مشکل دارم من می خوام عکسی که خوام از جدول کالا عکس کالای که کدش مثلا 101 هست رو تو پیکچرباکس نمایش بدم. اگه این کد رو برای من بزارید ممنون می شم.
در ضمن من
سلام، خیلی بد اخلاق شدیاااااا ! من سالی یکبار عصبانی می شم اونم تو سر خودم می زنم. این کلمات هست که اینطور بنظر می رسن.

ACorvinus
چهارشنبه 27 آبان 1388, 00:25 صبح
من می خوام عکسی که خوام از جدول کالا عکس کالای که کدش مثلا 101 هست ...

سلام .
انصافا خودتم نفهمیدی چی گفتیاااا !
بگذریم، شوخی می کنم ناراحت نشی یه وقت ؟!

حاجی کدش رو اجرا نکردم، شما خبرش رو بهم بده درست کار می کنه یا نه ؟!



Dim SqlString As String = String.Empty
Dim SqlCommand As SqlClient.SqlCommand
Dim SqlDataReader As SqlClient.SqlDataReader
Dim MemoryStream As IO.MemoryStream
Try
SqlString = "Select GoodImage_img From GoodsImageTable Where GoodCode_bint=101"
SqlCommand = New SqlClient.SqlCommand(SqlString, Connection)
SqlDataReader = SqlCommand.ExecuteScalar
SqlDataReader.Read()
MemoryStream.Write(SqlDataReader.Item("GoodImage_img"), 0, SqlDataReader.Item("GoodImage_img").Length - 1)
PictureBox.Image = System.Drawing.Image.FromStream(MemoryStream)
SqlDataReader.Close()
Catch ex As Exception
Messagebox.Show(ex.message)
Finally
If SqlDataReader.IsClosed = False Then
SqlDataReader.Close()
End If
SqlCommand.Dispose()
Connection.Close()
End Try


موفق باشی عزیز .

majid_vb_2008
چهارشنبه 27 آبان 1388, 12:23 عصر
lتوي اين pdf كامل توضيح داده شده فكر كنم مشكلت حل بشه
اينم بگم كه اين يك صفح سايت بوده و من pdf ش كردم

mina.net
پنج شنبه 28 آبان 1388, 12:35 عصر
حاجی کدش رو اجرا نکردم، شما خبرش رو بهم بده درست کار می کنه یا نه ؟!

نه نتونستم ازش استفاده کنم. ولی مقاله ای که جناب majid_vb_2008 گذاشتن رو استفاده کردم و به نتیجه رسیدم. که از ایشون تشکر می کنم.

majid_vb_2008
پنج شنبه 28 آبان 1388, 13:23 عصر
نه نتونستم ازش استفاده کنم. ولی مقاله ای که جناب majid_vb_2008 گذاشتن رو استفاده کردم و به نتیجه رسیدم. که از ایشون تشکر می کنم.

و خداوند دكمه http://barnamenevis.org/forum/images/buttons/post_thanks.gif (http://barnamenevis.org/forum/post_thanks.php?do=post_thanks_add&p=851529&securitytoken=1258626126-fd27b5b3ed696021ee875524c112f6a3d1938b2d) را آفريد