Asp.Net在SqlServer中的图片存取技术

作者:未知  来源:网络

在使用asp.net将图片上传并存入SqlServer中,然后从SqlServer中读取并显示出来 
一,上传并存入sqlserver
数据库结构
  create table test
  {
    id identity(1,1),
    FImage image
  }
  相关的存储过程
  Create proc UpdateImage
  (
    @UpdateImage Image
  )
  As
  Insert Into test(FImage) values(@UpdateImage)
  GO 
在upphoto.aspx文件中添加如下:
<input id="UpPhoto" name="UpPhoto" runat="server" type="file">
<asp:Button id="btnAdd" name="btnAdd" runat="server" Text="上传"></asp:Button> 
然后在后置代码文件upphoto.aspx.cs添加btnadd按钮的单击事件处理代码:
private void btnAdd_Click(object sender, System.EventArgs e)
{
        //获得图象并把图象转换为byte[]
        HttpPostedFile upPhoto=UpPhoto.PostedFile;
        int upPhotoLength=upPhoto.ContentLength;
        byte[] PhotoArray=new Byte[upPhotoLength];
        Stream PhotoStream=upPhoto.InputStream;
        PhotoStream.Read(PhotoArray,0,upPhotoLength); 
        //连接数据库
        SqlConnection conn=new SqlConnection();
        conn.C; 
        SqlCommand cmd=new SqlCommand("UpdateImage",conn);
        cmd.CommandType=CommandType.StoredProcedure; 
        cmd.Parameters.Add("@UpdateImage",SqlDbType.Image);
        cmd.Parameters["@UpdateImage"].Value=PhotoArray; 
        //如果你希望不使用存储过程来添加图片把上面四句代码改为:
        //string strSql="Insert into test(FImage) values(@FImage)";
        //SqlCommand cmd=new SqlCommand(strSql,conn);
        //cmd.Parameters.Add("@FImage",SqlDbType.Image);
        //cmd.Parameters["@FImage"].Value=PhotoArray; 
conn.open();
cmd.ExecuteNonQuery();
conn.Close();

二,从sqlserver中读取并显示出来
在需要显示图片的地方添加如下代码:
<asp:image id="imgPhoto" runat="server" ImageUrl="ShowPhoto.aspx"></asp:image> 
showphoto.aspx主体代码:
private void Page_Load(object sender, System.EventArgs e)
{
    if(!Page.IsPostBack)
    {
                SqlConnection conn=new SqlConnection()
                conn.C;
               
                string strSql="select * from test where id=2";//这里假设获取id为2的图片
                SqlCommand cmd=new SqlCommand()
                reader.Read();
                Response.C;
                Response.BinaryWrite((Byte[])reader["FImage"]);
                Response.End();
                reader.Close();
    }
}

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [Asp.Net] 的这些文章也感兴趣:

ASP.NET1.1新特征防止Script攻击
在asp.net中读取XML文件信息的4种方法
Asp.Net上传图片按比例自动缩小或放大
asp.net(c#) 取得网卡mac地址
使用 XSL 样式表无法查看 XML 输入
在 ASP.NET 3.5 中使用同时支持 Ajax Json 和 .NET 客户端的 WCF 服务
在VB中使用水晶报表的一种简易编程方法
asp.net 2.0页面即时编译的UML示意图
ASP.NET MVC 框架路线图更新
使用RangeValidator