واضح آرشیو وب فارسی:سایت ریسک: آموزش ذخیره عکس در database و نمایش آن در Gridview alireza_75 17 تير 1387, 12:17ممنونم از راهنمایی های شما اما خودم راه حلی رو بر مبنای معماری 3 لایه پیدا کردم ک دیدم خوبه اینجا در بارش توضیح بدم.(اجراش کنید خوشتون می یاد) save image in database 1-برای این کار ابتدا یک gridview برای نمایش اطلاعات در نظر می گیریم و همچنین مثلا یک formview برای گذاشتن upload کردن اطلاعات. 2-جدول product با اطلاعات زیر را در databaseام دارم: pid int, pname nvchar,picture image 3- برای رعایت معماری 3 لایه یک کلاس به نام product ایجاد می کنم و کد زیر را برای insert کردن و select کردن در آن می نویسیم: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; /// <summary> /// Summary description for product /// </summary> /// [System.ComponentModel.DataObject] public class product { public product() { // // TODO: Add constructor logic here // } [System.ComponentModel.DataObjectMethod(System.Comp onentModel.DataObjectMethodType.Select, true)] public DataSet1.productDataTable selectproduct() { DataSet1TableAdapters.productTableAdapter product = new DataSet1TableAdapters.productTableAdapter(); return product.GetData(); } [System.ComponentModel.DataObjectMethod(System.Comp onentModel.DataObjectMethodType.Insert, true)] public int insertproduct(string pname, byte[] picture) { DataSet1TableAdapters.productTableAdapter product = new DataSet1TableAdapters.productTableAdapter(); return product.Insert(pname, picture); } public DataSet1.productDataTable selectbyid(int pid) { DataSet1TableAdapters.productTableAdapter product = new DataSet1TableAdapters.productTableAdapter(); return product.selectbyid(pid); } } 4-product object رادر TableAdapter Configuration Wizard برای انتخاب datasourse در gridview را انتخاب و سپس متد select را در دامه Wizard کامل می کنم. 5- در formview در قسمت formview tasks قسمت edit template را انتخاب و در قسمت display آن insertitem template را انتخاب می کنیم و سپس textbox جلوی picture را حذف و به جای آن یک fileupload می گذاریم. 6-در iteminserting event آن یعنی formview تابع زیر را قرا می دهیم: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void FormView1_ItemInserting(object sender, FormViewInsertEventArgs e) { FileUpload image = (FileUpload)FormView1.FindControl("ImageUpload"); e.Values["picture"] = image.FileBytes; } } 7-تا اینجا بعد از اجرای برنامه می توانیم database را مقداردهی کنیم مثلا pname =TV , یک عکس دلبخواه خودتون =picture read image from database 1- فرم دیگری به نام show می سازیم 2-در gridview در قسمت edit columns فیلد picture را حذف و به جای آن imagefilde می گذاریم و سپس در قسمت bound fildeproperty آن مقدار data imageurlfilde را برابر pid و data imageurlformatstring را برابر ~/showimage.aspx?pid={0} قرار می دهیم 3- در متد pageload صفحه show تابع زیر را می نویسیم: using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class show : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { product Product = new product(); DataSet1.productDataTable Products =Product.selectbyid(int.Parse(Request.QueryString["pid"])); DataSet1.productRow prow=Products[0]; Response.BinaryWrite(prow.picture); } } 4- با اجرای برنامه می توانید هر عکسی که در database بذارید در gridview ببینید هر مشکلی داشتید در خدمتم آموزش ذخیره عکس در database و نمایش آن در najafzade 10 شهريور 1387, 09:53ممنونم از راهنمایی های شما [/SIZE][/SIZE] سلام آقا اگه میشه این فایلش رو هم اینجا بزارین. ممنون میشم. یا ایمیل کنین. [email protected] با تشکر:rose::rose::cool:
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 4882]