PDA

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



maryam_en
دوشنبه 09 مرداد 1396, 20:52 عصر
با سلام
من توی برنامه صدور فاکتور تعدادی کالا دارم که می خوام با کلیک روی یه باتن فایل دیالوگ باز بشه و تصویر انتخابی برای کالای موردنظر هم توی picbox قرار بگیره.
سوالی که برام مطرحه ایناست:
اخرین تصویر انتخابی برای هر کالا، از طرف کاربر رو چطور ذخیره کنم؟؟
ذخیره این تصویر توی دیتابیس به چه شکلی هست؟؟ و ایا میشه اصلا این تصویر رو توی دیتابیس ذخیره کرد و ازش خوند و یا از توی setting اینکارو میشه انجام داد؟؟ (با اکسس کار می کنم)

336699
دوشنبه 09 مرداد 1396, 22:24 عصر
برای ذخیره عکس در دیتابیس می توانید عکس رو تبدیل به Base64 کنید و در دیتابیس ذخیره کنید.

ولی بهتره اینکارو نکنید چون حجم دیتابیس خیلی زیاد میشه.

hamidrezax1
دوشنبه 09 مرداد 1396, 22:54 عصر
دوست عزیز شما اول نوع دیتا بیس خودتون رو مشخص کنید.بعد بنا بر نوع دیتا بیس راهکارهای مختلف رو دوستان ارائه میدن.
رایجترین نوع این کار کم کردن حجم عکس و ذخیره مستقیم در دیتابیس
یا ذخیره در جای دیگه و آدرس دهی هستش
اگر موضوع رو یکم بیشتر باز کنید قطعا به نتایج بهتری خواهید رسید
موفق باشید

maryam_en
سه شنبه 10 مرداد 1396, 10:43 صبح
برای ذخیره عکس در دیتابیس می توانید عکس رو تبدیل به Base64 کنید و در دیتابیس ذخیره کنید.

ولی بهتره اینکارو نکنید چون حجم دیتابیس خیلی زیاد میشه.


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

maryam_en
سه شنبه 10 مرداد 1396, 10:59 صبح
دوست عزیز شما اول نوع دیتا بیس خودتون رو مشخص کنید.بعد بنا بر نوع دیتا بیس راهکارهای مختلف رو دوستان ارائه میدن.
رایجترین نوع این کار کم کردن حجم عکس و ذخیره مستقیم در دیتابیس
یا ذخیره در جای دیگه و آدرس دهی هستش
اگر موضوع رو یکم بیشتر باز کنید قطعا به نتایج بهتری خواهید رسید
موفق باشید

سپاسگزارم
فرمی که باید طراحی کنم به شکل زیر هست:
http://uupload.ir/files/e0wb_11.jpg
---------------------------------------------------
کاری که میخوام بکنم اینه:
1- با کلیک روی باتن مقابل "تصویر" ادرسش توی تکست باکس تصویر بیاد و خور عکس هم توی picbox نمایش بشه
2-برای هر کالا این تصویر توی دیتابیسم که اکسس هست ذخیره بشه(مثل سایر مشخصات هر کالا که به تیبل من bind هست) و با انتخاب هر کالا از گرید پایین فرم، این تصویر هم لود بشه توی picbox به همراه سایر مشخصات دیگه(بقیه مشخصاتش رو انجام دادم فقط لود تصویر رو نمیدونم چجور انجامش بدم)
--------------------------------------------------
(یه مثالی که اینجا به ذهنم میرسه؛ توی تعریف چند کاربر برای لاگین یه برنامه هست که اونجا مشخصات کاربران رو توی setting ذخیره میکردیم و همونجا عکس کاربران رو هم وارد میکردیم بعد هر سری این عکس با ورود هر کاربر از setting خونده میشد و لود میشد توی picbox...... البته اونجا تعداد کاربر محدود و کم هست اما اینجا باید قابلیت ذخیره هر تعداد کالارو داشته باشم و این به نظرم دیگه توی setting نباید ذخیره بشه درسته؟؟)
-------------------------------------------------
ممنون میشم دوستان عزیز کمکم کنن

hamidrezax1
سه شنبه 10 مرداد 1396, 18:10 عصر
اکسس بنا به قابلیت هایی که داره نمیتونه حجم های زیاد دیتا بیس رو پشتیبانی کنه اگر براتون مشکلی نداره کنار پروژتون یه فایل به نام pic قرار بدین و عکس ها رو با شاخص یکتایی آدرس دهی کنید و ذخیره کنید در پوشه مربوطه.اگر متوجه نشدین بگین تا پروژه کوچکی رو براتون آماده کنم

maryam_en
سه شنبه 10 مرداد 1396, 23:17 عصر
سپاسگزارم
فرمی که باید طراحی کنم به شکل زیر هست:
http://uupload.ir/files/e0wb_11.jpg
---------------------------------------------------
کاری که میخوام بکنم اینه:
1- با کلیک روی باتن مقابل "تصویر" ادرسش توی تکست باکس تصویر بیاد و خور عکس هم توی picbox نمایش بشه
2-برای هر کالا این تصویر توی دیتابیسم که اکسس هست ذخیره بشه(مثل سایر مشخصات هر کالا که به تیبل من bind هست) و با انتخاب هر کالا از گرید پایین فرم، این تصویر هم لود بشه توی picbox به همراه سایر مشخصات دیگه(بقیه مشخصاتش رو انجام دادم فقط لود تصویر رو نمیدونم چجور انجامش بدم)
--------------------------------------------------
(یه مثالی که اینجا به ذهنم میرسه؛ توی تعریف چند کاربر برای لاگین یه برنامه هست که اونجا مشخصات کاربران رو توی setting ذخیره میکردیم و همونجا عکس کاربران رو هم وارد میکردیم بعد هر سری این عکس با ورود هر کاربر از setting خونده میشد و لود میشد توی picbox...... البته اونجا تعداد کاربر محدود و کم هست اما اینجا باید قابلیت ذخیره هر تعداد کالارو داشته باشم و این به نظرم دیگه توی setting نباید ذخیره بشه درسته؟؟)
-------------------------------------------------
ممنون میشم دوستان عزیز کمکم کنن


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


ممنونتون میشم تو مثال نشونم بدین. خدا خیرتون بده

hamidrezax1
چهارشنبه 11 مرداد 1396, 11:01 صبح
دوست عزیز این نمونه کوچک و برای درک و الهام موضوع هستش
دانلود (http://up.persianscript.ir/uploads2/ed8e-pic.rar)

samiasoft
چهارشنبه 11 مرداد 1396, 17:42 عصر
ممنونتون میشم تو مثال نشونم بدین. خدا خیرتون بده

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

Dim bytImage() As Byte Dim ms As New System.IO.MemoryStream
Dim bmpImage As New Bitmap(PictureBox1.Image)


bmpImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)
bytImage = ms.ToArray()
ms.Close()


cmd = New OleDbCommand("insert into Table1 (pic) VALUES (@pic)", connect)
cmd.Parameters.AddWithValue("@pic", bytImage)


connect.Open()
cmd.ExecuteNonQuery()
connect.Close()

maryam_en
یک شنبه 15 مرداد 1396, 18:37 عصر
واااااقعا سپاسگزارم. عالی بود کارتون جناب hamidreza. مشکلم حل شد

maryam_en
یک شنبه 15 مرداد 1396, 18:48 عصر
سپاس از راهنمایی شما