PDA

View Full Version : نمایش عکس در کنترل های Vb به وسیله Sql Server



m_zi
شنبه 19 خرداد 1386, 08:21 صبح
سلام
خسته نباشید
من می خوام عکسی را در یکی از کنترلهای VB نمایش دهم این عکس یکی از فیلدهای جدولم در بانک اطلاعاتی Sql Server است مثلا شماره پرسنلی همراه با عکس پرسنل در جدول وجود دارد و می خواهم آنها را نمایش دهم اولا من در جدول مربوطه چگونه عکس را ذخیره کنم و ثانیا در وی بی چگونه آن را نمایش دهم
ممنون می شم پاسخ این سوال را بدهید

با تشکر فراوان

perfeshnal
شنبه 19 خرداد 1386, 15:32 عصر
سلام

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

aidinwashere
دوشنبه 21 خرداد 1386, 15:32 عصر
من این کارو انجام دادم
اگه مشکل حل نشده بگو.

m_zi
سه شنبه 22 خرداد 1386, 15:54 عصر
حل نشد میشه برام بفرستید

ممنون
خیلی لازمش دارم

aidinwashere
چهارشنبه 23 خرداد 1386, 10:53 صبح
اولا باید توی بانک یه فیلد از نوع Image داشته باشین
برای ذخیره عکس در بانک:
Dim mystream As ADODB.Stream
Set mystream = New ADODB.Stream
mystream.Type = adTypeBinary
mystream.Open

Conn.Open

mystream.LoadFromFile CommonDialog1.FileName
recordSet("picture").Value = mystream.Read

mystream.Close
rs.Update
Conn.Close


فک میکنم مفهوم باشه.
CommonDialog1 یک Common Dialog Box هست که برای انتخاب فایل بکار میره.
RecordSet هم که مشخصه.
ضمنا قبل از اجرای این دستورات باید یک Connection باز داشته باشین, ادامه دستورات رو ننوشتم چون بستگی به پروژه شما داره.

برای خوندن از بانک:

Dim strStream As ADODB.Stream
Set strStream = New ADODB.Stream


strStream.Type = adTypeBinary
strStream.Open

strStream.Write rstRecordset.Fields("Picture").Value
strStream.SaveToFile "C:\Temp.bmp", adSaveCreateOverWrite
Image1.Picture = LoadPicture("C:\Temp.bmp")
Kill ("C:\Temp.bmp")

همونطور که میبینین از Stream ها استفاده شده و خروچی در یک کنترل Image نمایش داده میشه.
نکته, نام فیلد عکسی در بانک, Picture بوده.
سوالی بود در خدمتم.

m_zi
چهارشنبه 23 خرداد 1386, 13:21 عصر
میشه برنامه vb را که بشه ران کرد همراه با سورس رو بذارید .
ممنون و تشکر

m_zi
چهارشنبه 23 خرداد 1386, 14:14 عصر
حل شد خیلی خیلی ممنون

m_zi
شنبه 26 خرداد 1386, 14:26 عصر
اولا باید توی بانک یه فیلد از نوع Image داشته باشین
برای ذخیره عکس در بانک:
Dim mystream As ADODB.Stream
Set mystream = New ADODB.Stream
mystream.Type = adTypeBinary
mystream.Open

Conn.Open

mystream.LoadFromFile CommonDialog1.FileName
recordSet("picture").Value = mystream.Read

mystream.Close
rs.Update
Conn.Close


فک میکنم مفهوم باشه.
CommonDialog1 یک Common Dialog Box هست که برای انتخاب فایل بکار میره.
RecordSet هم که مشخصه.
ضمنا قبل از اجرای این دستورات باید یک Connection باز داشته باشین, ادامه دستورات رو ننوشتم چون بستگی به پروژه شما داره.

برای خوندن از بانک:

Dim strStream As ADODB.Stream
Set strStream = New ADODB.Stream


strStream.Type = adTypeBinary
strStream.Open

strStream.Write rstRecordset.Fields("Picture").Value
strStream.SaveToFile "C:\Temp.bmp", adSaveCreateOverWrite
Image1.Picture = LoadPicture("C:\Temp.bmp")
Kill ("C:\Temp.bmp")

همونطور که میبینین از Stream ها استفاده شده و خروچی در یک کنترل Image نمایش داده میشه.
نکته, نام فیلد عکسی در بانک, Picture بوده.
سوالی بود در خدمتم.

با تشکر فراوان تا حدی مشکلم حل شد ولی می خواهم که خروجی را در Dbgrid نمایش دهم مثلا لیست تمامی پرسنل به همراه عکس انها در Dbgrid نمایش داده شود .

ممنونم اگر پاسخ بدهید خیلی لازمش دارم .

aidinwashere
یک شنبه 27 خرداد 1386, 05:14 صبح
فرقی نمیکنه!
شما وقتی بتونی به عکست دسترسی داشته باشی, حالا هرجا میخوای نمایشش بده!
یه کنترل بذار و آدرسش رو از RecordSet بگیر!
بیشتر تلاش کن.

ENG_Torshani
یک شنبه 06 دی 1388, 19:08 عصر
ممنون میشم اگه مشخص کنید چه جوری می شه با TSQl ذخیره کرد الان شما فایل باینری که خوانده میشه تو یک recorset ریخته میشه ولی اگر بخواهیم به این صورت ذخیره کنیم نمیشه
("INSERT INTO TBLStu(Img) VALUES('" + mystream.Read + "')")