PDA

View Full Version : سوال: تبدیل و نمایش تصاویر ذخیره شده به صورت باینری در بانک توسط GridView؟



پیام حیاتی
جمعه 07 شهریور 1393, 06:49 صبح
سوالی مشابه قبلا مطرح کرده بودم که به نتیجه نرسید.ببینید دوستان مشخصات کاربر که تصویرش هم جزءشون هست به صورت باینری در جدول بانک اطلاعاتی ذخیره شده.حالا می خوام اطلاعات در GridView نمایش بدم همه چیز نمایش داده میشه به جزء تصویر،با اضافه کردن template field-imagefield هم اوکی نمیشه .این تصاویر ابتدا باید از حالت باینری خارج بشن و بعد در ستون و ردیف مربووطه به نمایش در بیان همین رو نمیدونم چه کار باید کنم؟تشکر

anvar
جمعه 07 شهریور 1393, 11:07 صبح
زمانی که به نتیجه نرسیدید باید جستجو می کردید

1 - http://stackoverflow.com/questions/18998763/how-to-retrieve-binary-image-from-database-using-c-sharp-in-asp-net

2 - http://stackoverflow.com/questions/7390983/convert-from-binarydata-to-image-control-in-asp-net

3 - http://www.codeproject.com/Articles/15460/C-Image-to-Byte-Array-and-Byte-Array-to-Image-Conv

و بهتر زا همه

1 - http://aspsnippets.com/Articles/Display-image-from-database-in-Image-control-without-using-Generic-Handler-in-ASPNet.aspx

2 - http://blogs.msdn.com/b/vijay/archive/2007/07/20/how-to-convert-image-into-byte-and-byte-to-image-using-c-in-asp-net.aspx

پیام حیاتی
جمعه 07 شهریور 1393, 13:33 عصر
کد تبدیل پیدا شد اما زمان اجرا خطا دارم :


Server Error in '/' Application.Unable to cast object of type 'System.DBNull' to type 'System.Byte[]'.Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidCastException: Unable to cast object of type 'System.DBNull' to type 'System.Byte[]'.

Source Error:



Line 38: {
Line 39: Image im = new Image();
Line 40: byte[] imagebyte = (byte[])dt.Rows[i]["m_image"];
Line 41: im.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(imagebyte, 0, imagebyte.Length);
Line 42: im.Width = 100;





byte[] imagebyte = (byte[])dt.Rows[i]["m_image"];

این کدها:


sqlserver sq = new sqlserver(".", "University");
DataTable dt = sq.select("select * from master");
for (int i = 0; i < dt.Rows.Count; i++)
{
Image im = new Image();
byte[] imagebyte = (byte[])dt.Rows[i]["m_image"];
im.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(imagebyte, 0, imagebyte.Length);
im.Width = 100;
im.Height = 100;
Panel1.Controls.Add(im);


}


جذول :
122823

Mousavmousab
جمعه 07 شهریور 1393, 13:53 عصر
از فیلد image استفاده نکن به جاش از VarrBinary(MAx) استفاده کن

پیام حیاتی
جمعه 07 شهریور 1393, 14:14 عصر
از فیلد image استفاده نکن به جاش از VarrBinary(MAx) استفاده کن
تفاوتی نکرد خطا پابرجاست.

anvar
جمعه 07 شهریور 1393, 20:32 عصر
مشکل از اینجاست که نمی تونه مقدار DBNull رو به Byte تبدیل کنه و کاملا هم طبیعیه!!

Unable to cast object of type 'System.DBNull' to type 'System.Byte[]

احتمالا در زمان تبدیل تصویر به بایت مشکلی ایجاد میشه

پیام حیاتی
شنبه 08 شهریور 1393, 00:31 صبح
خطا رو برطرف کردم،الآن تصاویر طبق کد در پنل نمایش داده میشن چطور باید در GriedView نمایششون بدم؟
این کد جواب نداد :


//--------------------- show image
sqlserver sq = new sqlserver(".", "University");
DataTable dt = sq.select("select * from student");
for (int i = 0; i < dt.Rows.Count; i++)
{
Image im = new Image();
byte[] imagebyte = (byte[])dt.Rows[i]["s_image"];
im.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(imagebyte, 0, imagebyte.Length);
im.Width = 100;
im.Height = 100;
Panel1.Controls.Add(im);


//--------------------Show in GridView
GridView1.DataSource = (im);
GridView1.DataBind();
}

sarah_pah
شنبه 08 شهریور 1393, 11:48 صبح
برای نمایش تصاویر اول در یک generic handle تصویر رو از بانک میخونی و به باینری تبدیل میکنی
بعد تو گرید ویو داخل یه item template یک تگ image میذاری و src اونو آدرس generic handller میدی

hamedd82
شنبه 08 شهریور 1393, 21:20 عصر
سلام دوست عزیز
منم این مشکلو داشتم میتونی از این سایت http://www.dotnetfox.com/articles/store-images-to-database-and-bind-to-gridview-in-Asp-Net-1114.aspx استفاده کنی ، خیلی ساده توضیح داده .
مشکل من که برطرف شد امیدوارم مشکل شما رو هم برطرف کنه

پیام حیاتی
یک شنبه 09 شهریور 1393, 12:34 عصر
سلام دوست عزیز
منم این مشکلو داشتم میتونی از این سایت http://www.dotnetfox.com/articles/store-images-to-database-and-bind-to-gridview-in-Asp-Net-1114.aspx استفاده کنی ، خیلی ساده توضیح داده .
مشکل من که برطرف شد امیدوارم مشکل شما رو هم برطرف کنه

ممنون مشکل با این آموزش حل شد.