PDA

View Full Version : عدم نمایش عکس از دیتابیس



sogoli
چهارشنبه 16 تیر 1389, 10:46 صبح
سلام
من یه فیلد تکست دارم که مسیر عکس را داخل آن ذخیره می کنم (access)
حال برای فراخوانی عکس از ابزار pictureBox استفاده می کنم و درقسمت تنظیماتش مشخص کردم که اطلاعات را از فیلد تکست بالا بخونه ولی متاسفانه عکس را نمایش نمی ده.
لطفا راهنمایی بفرمائید

mmd2009
چهارشنبه 16 تیر 1389, 12:26 عصر
با سلام

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

یک نمونه برنامه یا کد بذارید تا ببینیم مشکلتون چیه

sobijoon
چهارشنبه 16 تیر 1389, 12:56 عصر
با سلام
اطلاعاتتون که کمه بزارید من حدس بزنم
شما میخوایم وقتی از مسیری که انتخاب کردید عکسی رو، اون تو pictur box شما ظاهر شه درسته؟

sogoli
چهارشنبه 16 تیر 1389, 13:21 عصر
با سلام
اطلاعاتتون که کمه بزارید من حدس بزنم
شما میخوایم وقتی از مسیری که انتخاب کردید عکسی رو، اون تو pictur box شما ظاهر شه درسته؟

دقیقا .درواقع تصور کنید من 5 فیلد دارم که یکی ازفیلدهای ان pic هست. (مانند زیر)

id || name || family || pic

1 ||ali ||rezaee || C:\Users\Public\Pictures\Sample Pictures\pic1.jpg
2 ||hadi||hoseini|| C:\Users\Public\Pictures\Sample Pictures\pic2.jpg
3||reza||mohamadi|| C:\Users\Public\Pictures\Sample Pictures\pic3.jpg
4 ||ali ||kamali|| C:\Users\Public\Pictures\Sample Pictures\pic4.jpg
5 ||ali ||jamshidi|| C:\Users\Public\Pictures\Sample Pictures\pic5.jpg

حال می خواهم وقتی hoseini را سرچ می کنم عکس ان نیز در pictur box نمایش داده شود

mmd2009
چهارشنبه 16 تیر 1389, 14:10 عصر
با سلام

اینم یه نمونه برنامه که براتون درست کردم

قسمت PIC عکس هایی هستند که من به برنامه معرفی کردم که اونارو باید بذارید تو درایو C:\

قسمت dd هم بانک اطلاعاتی هست که باید اونو هم بذارید تو c:\

دیگه زیاد باحاش ور نرفتم چون میدونم شما اصل موضوع رو می خواهید واسه همین اینطوری شد ولی برنامه کار میکنه

mmd2009
چهارشنبه 16 تیر 1389, 15:40 عصر
راستی یه نظر :

از این روش استفاده نکنید الا به اجبار چون دیگه اصلا نمیتونید روی عکس ها مانور بدید و اونو رو از محلی به محلی دگیر انتقال بدید چون با این کار با خطای کامپایلری مواجه میشید.

sogoli
چهارشنبه 16 تیر 1389, 19:14 عصر
راستی یه نظر :

از این روش استفاده نکنید الا به اجبار چون دیگه اصلا نمیتونید روی عکس ها مانور بدید و اونو رو از محلی به محلی دگیر انتقال بدید چون با این کار با خطای کامپایلری مواجه میشید.


البته تا اونجاییکه من تحیق کردم حجم دیتابیس میره بالا اگر اونو بصورت باینری ذخیره کنم
درصمن من این برنامه رو با با مثلا پوشه داخل ان می خواهم رو سی دی رایت کنم.اونوقت باید مسیر پارتیشنی که فولدر داخل اون هست بصورت متغیر باشه.نظر شما چیه؟

درضمن مثالتون خیلی کمکم کرد فقط اگر بفرمایئد چگونه می توان بدون کلیک کردن روی دکمه و فقط با مرور بر دیتاگرید عکس را نمایش داد خیلی ممنون میشم

mmd2009
چهارشنبه 16 تیر 1389, 20:41 عصر
با سلام

در مورد سوال اولتون باید بگم که شما وقتی ادرس یک عکس رو ذخیره میکنید تو بانک مطمئنا باید همون عکس رو از همون ادرس بانک بخونه برای همین کا پیشنهاد میشه که حتی الامکان عکس های خودتون رو تو داریوی بذارید که تو هر کامپیوتری وجود داره مثلا درایو \:c و بهتره اونارو تو یه New Folder قرار بدید و کلا ادرس عکساتون رو اینطوری بذارید


c:\newfilder\


و در مورد سوالتون که میگید حجم زیاد هدر میره؟

فکر نکنم دیگه هیچ برنامه با کمبود حافظه رو به رو باشه چون این حافظه فضایی از CPU نمیگیره که ما بگیم حجم زیاد کار باعث کند شدن برنامه میشه
چون تمامی اطلاعات درون بانک قرار دارن و بانک هم مگه چندتا عکس میخواد تو خودش ذخیره کنه واگه بانکی نتونه مثلا 1000 عکس تو خودش ذخیره کنه بهتره وارد جوی اب بشه

***************

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

کافیه تو رویداد cellClick کد زیر رو بزنید



string address_pic = dg1.currentrow.cell[1].value.toStringc();

picturebox1.load(address_pic);

mmd2009
چهارشنبه 16 تیر 1389, 20:54 عصر
برنامشو نوشتم براتون میتونید ببینید

حالا رو هر ردیف کلیک کنید عکس اون ردیف نشون داده میشه