网站首页 新闻首页 网页设计图形动画软件编程网站开发办公软件操作系统数据库网络技术认证考试范文资料黑客攻防 书籍教程 进入论坛

Tips/Tricks#2:使用Gridview绑定数据库中的图片

http://www.diybl.com/ 2008-3-24  网络 点击:  [ 评论 ]
文章搜索:    【点击打包该文章】

使用Gridview绑定数据库中的图片

 

注:此系列记录在我实际开发中遇到的问题和收藏一些技巧文章。

我们都知道,在Gridview中不能直接去绑定数据库中的图片,我们可以利用HttpHandler很容易的完成这个任务,在这里我记录一下这个过程。

1.上传图片存储到数据库中

在数据库中创建一个表,添加一下3个字段:

创建一个表

步骤一:在Web页面中拖一个FileUpload 控件,一个文本框用于输入名称和提交上传按钮

<asp:FileUpload ID="fuImage" runat="server" /><br /><asp:TextBox ID="txtImageName" runat="server"/><br /><asp:Button ID="btnUpload" runat="server" OnClick="btnUpload_Click" Text="Upload" />

步骤二:在Web.Config文件内配置连接字符串。

<add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Image.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>

步骤三:把下面的代码复制到上传按钮事件中。

protected void btnUpload_Click(object sender, EventArgs e){     Stream imgStream = fuImage.PostedFile.InputStream;     int imgLen = fuImage.PostedFile.ContentLength;     string imgName = txtImageName.Text;     byte[] imgBinaryData = new byte[imgLen];     int n = imgStream.Read(imgBinaryData,0,imgLen);      //use the web.config to store the connection string     SqlConnection connection = new SqlConnection(ConfigurationManager.     ConnectionStrings["connectionString"].ConnectionString);     SqlCommand command = new SqlCommand("INSERT INTO Image (imagename,image)      VALUES ( @img_name, @img_data)", connection);      SqlParameter param0 = new SqlParameter("@img_name", SqlDbType.VarChar, 50);     param0.Value = imgName;     command.Parameters.Add(param0);      SqlParameter param1 = new SqlParameter("@img_data", SqlDbType.Image);     param1.Value = imgBinaryData;     command.Parameters.Add(param1);      connection.Open();     int numRowsAffected = command.ExecuteNonQuery();     connection.Close();}

2.利用HttpHandler从数据库中读取图片

创建一个名为ImageHandler.ashx的HttpHandler从数据库中读取图片,通过imageID这个参数调用其方法显示图片。像这样:ImageHandler.ashx?ImID=200

步骤四:书写ImageHandler.ashx文件代码如下:

public class ImageHandler : IHttpHandlerpublic void ProcessRequest(HttpContext context)     {         string imageid = context.Request.QueryString["ImID"];         SqlConnection connection = 
欢迎光临DIY部落,点击这里查看更多文章教程   【点击打包该文章】
[1] [2]
如果图片或页面不能正常显示请点击这里 站内搜索:   

文章评论

请您留言

 

最新新闻