PDA

View Full Version : سوال: ذخیره تصویر در دیتابیس و نماشی آن در گرید ویو و گزارشات



ali190
پنج شنبه 15 دی 1390, 19:06 عصر
باسلام و عرض خسته نباشید
دوستان چطور میتونم عکسهام رو در دیتابیس به صورت باینری ذخیره کنم و بعد تصاویر ذخیره شده رو در گرید ویو نمایش بدم یا اون تصاویر رو در گزارشاتم چاپ کنم و با رفتن بر روی هر رکورد تصویر ذخیره شده رو در یک ToolTip نمایش بدم:
http://1.ming.site90.net/images/61882dd2d19c.jpg
برای اینکه منظورم رو بهترم برسونم توجهتون رو جلب میکنم به مثال زیبای زیر :
http://go.devexpress.com/DevExpressDownload_VideoRental.aspx
البته یه نکته بگم که باید قید کامپوننتهایی که در این Sample به کار رفته رو باید زد چون برای شرکت DevExpress هست و از RTL پشتیبانی نمیکنه
ممنون و متشکر
یاعلی

saeed0935
پنج شنبه 15 دی 1390, 19:49 عصر
سلام.
برای ذخیره عکس از این استفاده کن MemoryStream ms = new MemoryStream();
pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat);
byte[] arrPic = ms.GetBuffer();
ms.Close();
objCommand.Parameters.Add("@Pic", SqlDbType.VarBinary).Value = arrPic;
واسه نشون دادن تو گرید ویو باید گرید ویو رو به database بایند کنی.
در فرم گزارش یک pictureBox بزار و اونو به فیلد عکس بایند کن.

ali190
پنج شنبه 15 دی 1390, 21:15 عصر
سلام
ببخشید کدی که شما نوشتید برای ذخیره عکس در دیتابیس هست؟
من میخوام عکسی که در دیتابیس ذخیره شده رو در گریذ نمایش بدم
میشه بطور خلاصه بفرمائید بایند کردن چیه؟
ممنونم
یاعلی

saeed0935
پنج شنبه 15 دی 1390, 22:14 عصر
تو فرمت یه picturebox داری باید بری تو قسمت property بعد data binding رو انتخاب میکنی و بعد روی Image کلیک میکنی و روی add project data source کلیک میکنی بعد دیتابیستو انتخاب میکنی و از توی تیبلت رکورد مربوط به عکس رو انتخاب میکنی.
حالا از property خارج شو و مجدد property رو باز کن و روی باینینگ سورست کیلیک کن و رکورد عکسو انتخاب کن.
موفق باشی.

ali190
پنج شنبه 15 دی 1390, 22:25 عصر
من میخوام اطلاعات دیتابیس رو در گرید ویو نمایش بدم
حالا یکی از این فیلدها عکس هست
میخوام این عکس هم در کنار سایر فیلدها در گرید ویو نمایش داده بشه
ممنون میشم روش کدنویسیش که از انعطاف بیشتری برخوردار هست رو بفرمائید
ممنونم
یاعلی

ali190
شنبه 17 دی 1390, 21:43 عصر
سلام
آیا امکانش هست کل تصاویر ذخیره شده در دیتابیس رو به صورت یک آلبوم در کریستال ریپورت نمایش بدم
بهصورت پشت سر هم و در هر رکورد یک عکس و در هر صفحه از گزارش مثلاً سه تصویر
ممنونم
یاعلی

charkhkar
یک شنبه 18 دی 1390, 00:39 صبح
سلام
دوست عزیز من برای نمایش تصویر در dataGridview از این روش استفاده می کنم
dataGridView.Rows[i].Cells["pic"].Value = new Bitmap(new MemoryStream(NameColumnInTable.ToArray()));
در این روش شما می تونی ستون تصویر رو با هر ویژگی که تمایل داری ویرایش کنی.
و در جوابت باید بگم شما میتونی تصاویر موجود در دیتابیس رو با کریستال ریپورت نشون بدی و هم هر تصویر رو تو یک رکورد یا هر صفحه گزارش رو شامل چند تصویر.