一,上传并存入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.ConnectionString="Data Source=localhost;Database=test;User Id=sa;Pwd=sa";

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.ConnectionString="Data Source=localhost;Database=test;User Id=sa;Pwd=sa";
               
                string strSql="select * from test where id=2";//这里假设获取id为2的图片
                SqlCommand cmd=new SqlCommand()
                reader.Read();
                Response.ContentType="application/octet-stream";
                Response.BinaryWrite((Byte[])reader["FImage"]);
                Response.End();
                reader.Close();
     }
}

3,在winform中将图片存入sqlserver,并从sqlserver中读取并显示在picturebox中

1,存入sqlserver
数据库结构和使用的存储过过程,同上面的一样
 1.1,在窗体中加一个OpenFileDialog控件,命名为ofdSelectPic
 1.2,在窗体上添加一个打开文件按钮,添加如下单击事件代码:
    Stream ms;
  byte[] picbyte;
  //ofdSelectPic.ShowDialog();
  if (ofdSelectPic.ShowDialog()==DialogResult.OK)
  {
   if ((ms=ofdSelectPic.OpenFile())!=null)
   {
    //MessageBox.Show("ok");
    picbyte=new byte[ms.Length];
    ms.Position=0;
    ms.Read(picbyte,0,Convert.ToInt32(ms.Length));
    //MessageBox.Show("读取完毕!");

//连接数据库
    SqlConnection conn=new SqlConnection();
    conn.ConnectionString="Data Source=localhost;Database=test;User Id=sa;Pwd=sa";

SqlCommand cmd=new SqlCommand("UpdateImage",conn);
    cmd.CommandType=CommandType.StoredProcedure;

cmd.Parameters.Add("@UpdateImage",SqlDbType.Image);
    cmd.Parameters["@UpdateImage"].Value=picbyte;

conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();

ms.Close();
    }
   }

2,读取并显示在picturebox中
 2.1 添加一个picturebox,名为ptbShow
 2.2 添加一个按钮,添加如下响应事件:
      SqlConnection conn=new SqlConnection();
 conn.ConnectionString="Data Source=localhost;Database=test;User Id=sa;Pwd=sa";

string strSql="select FImage from test where id=1";

SqlCommand cmd=new SqlCommand(strSql,conn);

conn.Open();
 SqlDataReader reader=cmd.ExecuteReader();
        reader.Read();

MemoryStream ms=new MemoryStream((byte[])reader["FImage"]);

Image image=Image.FromStream(ms,true);

reader.Close();
        conn.Close();

ptbShow.Image=image;

在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.ConnectionString="Data Source=localhost;Database=test;User Id=sa;Pwd=sa";

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.ConnectionString="Data Source=localhost;Database=test;User Id=sa;Pwd=sa";
               
                string strSql="select * from test where id=2";//这里假设获取id为2的图片
                SqlCommand cmd=new SqlCommand()
                reader.Read();
                Response.ContentType="application/octet-stream";
                Response.BinaryWrite((Byte[])reader["FImage"]);
                Response.End();
                reader.Close();
     }
}

3,在winform中将图片存入sqlserver,并从sqlserver中读取并显示在picturebox中

1,存入sqlserver
数据库结构和使用的存储过过程,同上面的一样
 1.1,在窗体中加一个OpenFileDialog控件,命名为ofdSelectPic
 1.2,在窗体上添加一个打开文件按钮,添加如下单击事件代码:
    Stream ms;
  byte[] picbyte;
  //ofdSelectPic.ShowDialog();
  if (ofdSelectPic.ShowDialog()==DialogResult.OK)
  {
   if ((ms=ofdSelectPic.OpenFile())!=null)
   {
    //MessageBox.Show("ok");
    picbyte=new byte[ms.Length];
    ms.Position=0;
    ms.Read(picbyte,0,Convert.ToInt32(ms.Length));
    //MessageBox.Show("读取完毕!");

//连接数据库
    SqlConnection conn=new SqlConnection();
    conn.ConnectionString="Data Source=localhost;Database=test;User Id=sa;Pwd=sa";

SqlCommand cmd=new SqlCommand("UpdateImage",conn);
    cmd.CommandType=CommandType.StoredProcedure;

cmd.Parameters.Add("@UpdateImage",SqlDbType.Image);
    cmd.Parameters["@UpdateImage"].Value=picbyte;

conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();

ms.Close();
    }
   }

2,读取并显示在picturebox中
 2.1 添加一个picturebox,名为ptbShow
 2.2 添加一个按钮,添加如下响应事件:
      SqlConnection conn=new SqlConnection();
 conn.ConnectionString="Data Source=localhost;Database=test;User Id=sa;Pwd=sa";

string strSql="select FImage from test where id=1";

SqlCommand cmd=new SqlCommand(strSql,conn);

conn.Open();
 SqlDataReader reader=cmd.ExecuteReader();
        reader.Read();

MemoryStream ms=new MemoryStream((byte[])reader["FImage"]);

Image image=Image.FromStream(ms,true);

reader.Close();
        conn.Close();

ptbShow.Image=image;

转载于:https://www.cnblogs.com/yzxchoice/archive/2006/09/08/498846.html

使用asp.net将图片上传并存入SqlServer中,然后从SqlServer中读取并显示出来相关推荐

  1. 用纯ASP代码实现图片上传并存入数据库中

      用纯ASP代码实现图片上传并存入数据库中    热     ★ 用纯ASP代码实现图片上传并存入数据库中 用ASP编写网站应用程序时间长了,难免会遇到各式各样的问题,其中关于如何上传文件到服务器恐 ...

  2. C# ASP.NET MVC 图片上传的多种方式(存储至服务器文件夹,阿里云oss)

    图片上传时我们进场用到的一个功能今天将他整理了一下写了个demo希望对大家有用 该demo分为如下 1.上传至至服务器文件夹 2.上传至阿里云oss 3.百度webupload上传图片 效果图如下: ...

  3. ASP.Net MVC3 图片上传详解(form.js,bootstrap)

    图片上传的插件很多,但很多时候还是不能切合我们的需求,我这里给大家分享个我用一个form,file实现上传四张图片的小demo.完全是用jquery前后交互,没有用插件. 最终效果图如下: 玩过花田人 ...

  4. ASP.NET的图片上传和显示

    上传 protected void btnUpload_Click(object sender, EventArgs e){if (!filUpload.HasFile) {Alert("没 ...

  5. asp 调用php上传图片,asp 版 本地图片上传问题!

    真的很简单~  就是两个 点点  的问题~:(    真当是 人不学不知义 啊~:) 为了让和我一样笨笨的人能节省些 宝贵的时间打麻将~:)我把 简单的代码贴出来~:) KE.show({ id : ...

  6. asp.net多图片上传案例_会计小明的故事-成本核算案例篇

    因涉及成本核算案例篇,所需要的图表比较多,但是知乎不同于微信可以直接将文档图表复制过来,知乎专栏文章,所有图表必须先截图,然后以图片形式展示.但是成本核算案例图表实在是太多,一一截图,一则影响整体观感 ...

  7. android 调用asp.net webservice 图片上传到服务器

    图片转换: package com.qsmart.audit.utility;import java.io.ByteArrayOutputStream; import java.io.File; im ...

  8. 图片上传到数据库,保存到Blob字段中

    需求:从系统上传图片,将图片信息保存到数据库的blob字段中,并提供照片的查询接口 controller: package com.success.controller;import ../*** 系 ...

  9. asp.net mvc 上传到服务器 图片不显示,ASP.NET MVC实现图片上传、图片预览显示

    先看看效果(下面gif动画制作有点大,5.71MB): 题外话:上面选择图片来源于Insus.NET的新浪微博,言归正传,由于以前的asp.net mvc的练习文件上传文件,显示或是下载等博文,均是存 ...

最新文章

  1. 将远程桌面客户端配置为连接到特定端口
  2. 关于vmware workstation10常见问题
  3. v$sysstat表解释
  4. 我的小型网站搜索分词中遇到的问题
  5. 【学习笔记】7、标准数据类型—字符串
  6. 手把手教会你(单/多)文件上传(并修改文件默认的最大最小值)
  7. 一个WordPress站点绑定多个域名
  8. windows下多线程知识
  9. 在线 SQL 数据库环境
  10. 圆与平面的接触面积_如果把绝对圆的球体放在绝对平的平面上,那接触面是不是无限小?...
  11. ubuntu libxml2 使用
  12. linux升级libpng,在Linux中安装libpng-dev以解决pngquant构建失败的问题
  13. 计算机专业基础820考什么,820计算机专业基础考纲
  14. Exception in thread “main“ java.lang.NoClassDefFoundError: org/jaxen/NamespaceContext
  15. java order()_Java Comparator naturalOrder()用法及代码示例
  16. 山水印|竹林野茶:你喝过的茶,都写在了脸上
  17. do{...}while(false)的用法
  18. Deepin安装使用微信
  19. 英语日常口语对话(3)
  20. 如何高效构建保险业场景化数据分析体系-承保和理赔

热门文章

  1. 8g内存够吗 rust_618已过半,这些白菜价内存你买到了吗?最便宜的8G不到120元
  2. 爬虫python入门_如何入门Python爬虫?爬虫原理及过程详解
  3. java hibernate方言_java – 如何在运行时获取Hibernate方言
  4. 计算机相关专业试题,计算机基础类 模拟试题 计算机相关专业 模拟题 10套 附答案.doc...
  5. scpi指令转换c语言,[C#源代码]使用SCPI指令对通讯端口(RS232/USB/GPIB/LAN)进行仪器编程...
  6. java spliterator,Java 8 之Stream Spliterator
  7. java 浏览器信息吗_java获取浏览器信息
  8. 计算机winform参考文献写,毕业论文基于C#WinForm的语音通信系统设计.doc
  9. gdiplus判断一个点是否在圆弧线上_面试前必读!!!原生JS补给(上)
  10. access没有使用 对象的必要权限_厨房有没有必要安燃气报警器 使用燃气要注意哪些安全性措施...