راهنمایی فوری

alireza_75

Member
سلام
من می خوام یک فروشگاه اینترنتی با asp.net طراحی کنم
در این باره نیاز دارم که عکس را در database ذخیره و در صفحاتم با استفاده از آن نشان دهم
می تونم عکس رو در database ذخیره کنم اما نمیتونم اونو از Database بخونم
کسی در این رابطه می تونه کمکم کنه.
البته مقاله ای در این رابطه پیدا کرده ام اما از قسمت دومش سر در نمی یارم
http://www.codeproject.com/KB/aspnet/GridViewImages.aspx
ممنون
 
آخرین ویرایش:

majidf1

Member
خوب شما می تونید عکس رو با فرم html در یه فولدر آپ لود کنی بعد آدرس عکس رو وارد دیتابیست بکنی
در جایی هم که می خایی نشونش بدی کافی
img src="آدرس عکس و نام عکس آپلود شده" رو قرار بدی
موفق باشی
اگه مشکلی بود رو همه ما حساب کن, رفیق
 

alireza_75

Member
ممنونم از راهنمایی های شما
اما خودم راه حلی رو بر مبنای معماری 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.ComponentModel.DataObjectMethodType.Select, true)]
public DataSet1.productDataTable selectproduct()
{
DataSet1TableAdapters.
productTableAdapter product = new DataSet1TableAdapters.productTableAdapter();
return product.GetData();
}
[System.ComponentModel.
DataObjectMethod(System.ComponentModel.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 ببینید


هر مشکلی داشتید در خدمتم


 

جدیدترین ارسال ها

بالا