PDA

View Full Version : سوال: چگونگی ذخیره سازی آدرس عکس در دیتابیس



یک دوست
پنج شنبه 29 مهر 1389, 11:35 صبح
سلام دوستان من یه سری سوال در مورد ذخیره سازی تصویر برای برنامه ای تحت ویندوز دارم که اگر لطف بکنید پاسخ بدهید ممنون می شم:
1. من پست های بسیار زیادی رو در این مورد خوندم و الان گیج شدم که بلاخره عکس رو تو دیتابیس ذخیره کنم یا تو یه فولدر و آدرسش رو تو دیتابیس می دونم که راه دوم از نظر حجمی که می خواد تو دیتابیس اشغال کنه بهتره چون کمتره ولی اونجوری خب عکس امنیت نداره و اگر کاربر یه عکسی رو پاک کنه چی در حالی که آدرسش تو دیتابیس هست. در ضمن عکسهای که می خواد ذخیره بشه در واقع عکسهای پرسنلی افراد است که همراه با سایر اطلاعات افراد مثل نام و نام خانوادگی عکسشون هم باید ذخیره بشه حالا به نظر شما از کدوم روش استفاده کنم؟

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

3.خب من اگر بخواهم عکس رو تو دیتابیس ذخیره بکنم خب می تونم چک بکنم که عکس موجود هست یا خیر اما اگر بخوام آدرس رو تو دیتا بیس ذخیره بکنم چه جوری می تونم چک کنم چون مثلا آدرس عکس تو دیتابیس هست منتها خود عکس مثلا پاک شده و نیست چه جوری می شه اینا رو بررسی کرد و درصورت بروز همچین خطاهایی اونا رو اصطلاح کرد؟

4.بعد چه جوری می تونم این عکس رو در کنار سایر اطلاعات فرد تو گزارش گیری استفاده کنم

پیشاپیش بابت پاسخ هاتون ممنونم

یک دوست
پنج شنبه 29 مهر 1389, 15:24 عصر
وای یعنی هیشکی نمی دونه
پس چرا هرجا می رم نوشتن ساده است ولی هیشکی چیزی ننوشته

farhadt
پنج شنبه 29 مهر 1389, 15:57 عصر
باید با این فضای نام کار کنی: IO.File
اما چندتا نکته که فکر کنم به دردت بخوره.

1- حتما به این نیاز داری بدونی که فولدری که فایل exe برنامت توشه چیه؟ این دستور بهت میده:
Application.StartupPath() . مثلا اگه یه فولدر به اسم images در کنار فایل اجراییت داشته باشی آدرسش میشه این:


Application.StartupPath() & "\images\"


2- برای اینکه عکس کاربر رو کپی کنی توی فولدر images:


IO.File.Copy("c:\userpic.jpg", Application.StartupPath() & "\images\pic.jpg")


3- اگه میخوای بدونی عکس کاربر هنوز هست یا نه:


IO.File.Exists(Application.StartupPath() & "\images\pic.jpg")


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

موفق باشی

یک دوست
پنج شنبه 29 مهر 1389, 19:47 عصر
سلام دوست عزیز ممنون از پاسختون منتها من هنوز جواب سوال اولم رو نگرفتم که کدوم راه بهتره
در مورد سوال دوم هم باید بگم اینی که شما لطف کردی نوشتی یه سری کدها استاتیک است من می خوام در دیتابیس ذخیره کنم و واکشی کنم این رو نمی دونم چه جوری می شه
اما خب پاسخ هاتون در مورد سوال سه و چهار به کارم اومد که بابت اونها و همه زحماتی که کشیدین ازتون تشکر می کنم
دوستان اگر راهنمایی دیگه ای هم دارن خوشحال می شم کمکم کنن

Sub Zero
پنج شنبه 29 مهر 1389, 23:05 عصر
من مشابه اين كار رو با روش ذخيره سازي آدرس عكس انجام دادم . بودن يانبودن عكس رو هم گذاشتم به عهده كاربر , كه بايد عكسهاي پرسنل رو در يك پوشه خاص ( مثلا Image ) قرار بده .اگه برنامه عكس مورد نظر رو پيدا كرد نمايش ميده اگه پيدا نكرد يه تصوير (يا آيكن) رو به صورت پيش فرض نمايش ميده .

یک دوست
پنج شنبه 29 مهر 1389, 23:28 عصر
من مشابه اين كار رو با روش ذخيره سازي آدرس عكس انجام دادم . بودن يانبودن عكس رو هم گذاشتم به عهده كاربر , كه بايد عكسهاي پرسنل رو در يك پوشه خاص ( مثلا Image ) قرار بده .اگه برنامه عكس مورد نظر رو پيدا كرد نمايش ميده اگه پيدا نكرد يه تصوير (يا آيكن) رو به صورت پيش فرض نمايش ميده .

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

یک دوست
جمعه 30 مهر 1389, 19:59 عصر
با تشکر از پاسخ تمام دوستان
من بیشتر سوالاتم رو پاسخشون رو گرفتم منهای یکی
من هنوز نمی دونم چه جوری عکس رو تو کریستال ریپورت بیارم جستجو هم که کردم برای سی شارپ بود که با LINQ نوشته شده بود دوستان اگر یه لطفی بکنن کدی یا یه برنامه کوچک که با وی بی نوشته شده باشه و با ADO.NET ممنون می شم

Sub Zero
یک شنبه 02 آبان 1389, 22:43 عصر
من هنوز نمی دونم چه جوری عکس رو تو کریستال ریپورت بیارم جستجو هم که کردم برای سی شارپ بود که با LINQ نوشته شده بود دوستان اگر یه لطفی بکنن کدی یا یه برنامه کوچک که با وی بی نوشته شده باشه و با ADO.NET ممنون می شم

روال كلي كار به اين صورته كه بايد يه كنترل از نوع OLEObject در كريستال ريپورت براي عكست بزاري و اونو به فيلد از تيبلت كه بايد از نوع باينري باشه وصل كني از اون طرف هم عكست رو به صورت باينري بخوني و در تيبلت ذخيره كني . همين
اينم 3 تا لينك :

Image in Crystal Reports (http://www.codeproject.com/KB/vb/Image_in_Crystal_Reports.aspx)

Loading images dynamically in Crystal Report (http://inspirone.blogspot.com/2007/01/loading-images-dynamically-in-crystal.html)

How to Upload or Change an image in the Crystal Report at runtime (http://www.c-sharpcorner.com/UploadFile/saj/CrystalReports03192006090510AM/CrystalReports.aspx)