//浏览图片

         private void btnUp_Click(object sender, EventArgs e)

         {

             OpenFileDialog ofd = new OpenFileDialog();

             ofd.Title = "选择要上传的图片";

             ofd.Filter = "All Files(*.*)|*.*|位图(*.bmp)|*.bmp|JPEG(*.jpg)|*.jpg";

             ofd.ShowDialog();

             textBox1.Text = ofd.FileName;

             if (!File.Exists(ofd.FileName))

             {

                 MessageBox.Show("照片为空");

                 return;

             }

         }

         //上传保存到数据库

         private void btnUpLoad_Click(object sender, EventArgs e)

         {

             string strPath = txtbImage.Text.Trim();

             FileStream fs = new FileStream(strPath, FileMode.Open, FileAccess.Read);

             byte[] byteFile = new byte[fs.Length];

             fs.Read(byteFile, , (int)fs.Length);

             fs.Close();

             SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=Test;Integrated Security=True");

                 try

                 {

                     SqlCommand cmd = new SqlCommand();

                     cmd.Connection = conn;

                     string strSql = "insert into test(FileName,Img) Values(@FileName,@Img)";

                     cmd.CommandText =strSql ;

                     //cmd.Parameters.AddWithValue("@FileName", strPath);

                     //cmd.Parameters.AddWithValue("@Img", byteFile);

                     //或者

                     SqlParameter[] parameters = new SqlParameter[];

                     parameters[] = new SqlParameter("@FileName", SqlDbType.NVarChar, );

                     parameters[].Value = strPath;

                     parameters[] = new SqlParameter("@Img", SqlDbType.Image,int.MaxValue);

                     parameters[].Value = byteFile;

                     cmd.Parameters.AddRange(parameters);

                     conn.Open();

                     cmd.ExecuteNonQuery();

                     conn.Close();

                     MessageBox.Show("上传成功");

                 }

                 catch

                 {

                     conn.Close();

                     MessageBox.Show("上传失败!");

                 }

         }

 从数据库读取图片显示到窗体:

 //读到图片显示到PictureBox

         private void btnDownLoad_Click(object sender, EventArgs e)

         {

             byte[] bytFile;

             SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=Test;Integrated Security=True");

                 try

                 {

                     SqlCommand cmd = new SqlCommand();

                     string strSql = "select img from test where ID=3";

                     cmd.Connection = conn;

                     cmd.CommandText = strSql;

                     conn.Open();

                     SqlDataReader sdr = cmd.ExecuteReader();

                     if (sdr.Read())

                     {

                         bytFile = (Byte[])sdr["Img"];

                     }

                     else

                     {

                         bytFile = new byte[];

                     }

                     sdr.Close();

                     conn.Close();

                     //通过内存流MemoryStream,

                     //把byte[]数组fileContent加载到Image中并赋值给图片框的Image属性,

                     //让数据库中的图片直接显示在窗体上。

                     MemoryStream ms = new MemoryStream(bytFile, , bytFile.Length);

                     this.picImage.Image = Image.FromStream(ms);

                     //关闭内存流

                     ms.Close();

                 }

                 catch

                 {

                     conn.Close();

                     MessageBox.Show("失败");

                 }

         }

代码转自IT学习广场http://www.itxxgc.com/net/detail/30

                 来自凌波小屋-----冯和超的笔记-------

C#(WinForm)上传图片保存到数据库和从数据库读取图片显示到窗体的更多相关文章

  1. C# 保存PictureBox中的图片到数据库,并从数据库读取图片显示到PictrueBox,解决报错 “无效参数”

    下面是两段关键代码: /// <summary> /// 将一张图片转换为字节 /// </summary> /// <param name="img" ...

  2. MySQL数据库写入图片并读取图片显示到JLabel上的详解

    相较于Oracle,MySQL作为一个轻量级的开源的数据库,可谓是大大简化了我们的操作.这次我就来写一个关于数据库存入图片,获取图片的例子吧,也为了今后的复习使用.(我们一般采取存入路径的方式,而不是 ...

  3. VS.C#如何向数据数据库中存入和读取图片的

    写入图片部分代码:假设图片为 test.gifbyte [] bytes = File.ReadAllBytes(@"c:\test.gif");SqlConnection con ...

  4. [转]asp.net mvc 从数据库中读取图片

    本文转自:http://www.cnblogs.com/mayt/archive/2010/05/20/1740358.html 首先是创建一个类,继承于ActionResult,记住要引用Syste ...

  5. asp.net mvc 从数据库中读取图片的实现代码

    首先是创建一个类,继承于ActionResult,记住要引用System.Web.Mvc命名空间,如下: public class ImageResult : ActionResult { publi ...

  6. php实现上传图片保存到数据库的方法

    http://www.jb51.net/article/61034.htm 作者:傲雪星枫 字体:[增加 减小] 类型:转载   这篇文章主要介绍了php实现上传图片保存到数据库的方法,可通过将图片保 ...

  7. C# 图片保存到数据库和从数据库读取图片并显示

    图片保存到数据库的方法: public void imgToDB(string sql)        {   //参数sql中要求保存的imge变量名称为@images            //调 ...

  8. 基于Enterprise Library的Winform开发框架实现支持国产达梦数据库的扩展操作

    由于一个客户朋友的需求,需要我的Winform开发框架支持国产达梦数据库的操作,这个数据库很早就听过,但是真正一般项目用的很少,一般在一些特殊的项目可能需要用到.由于我的Winform开发框架,是基于 ...

  9. winform里dataGridView分页代码,access数据库

    winform里dataGridView分页,默认dataGridView是不分页的和webform里不一样,webform中GridView自带自带了分页. 现在c/s的程序很多时候也需要webfo ...

随机推荐

  1. 【HDOJ】1885 Key Task

    状态压缩+BFS,一次AC. /* 1885 */ #include <iostream> #include <queue> #include <cstring> ...

  2. 【HDOJ】1760 A New Tetris Game

    博弈,主要是求SG值.终于做出点儿感觉. /* 1760 */ #include <cstdio> #include <cstring> #include <cstdli ...

  3. Linux&shell 之基本Shell命令

    写在前面:案例.常用.归类.解释说明.(By Jim) 文件和目录列表lsls -F (用斜杠区分目录和文件)ls -a (把隐藏文件一并显示出来)ls -l (同ll,显示详细信息)ls -l 文件 ...

  4. 图论(KM算法):COGS 290. [CTSC2008] 丘比特的烦恼

    290. [CTSC2008] 丘比特的烦恼 ★★★   输入文件:cupid.in   输出文件:cupid.out   简单对比 时间限制:1 s   内存限制:128 MB 随着社会的不断发展, ...

  5. 动态规划 HDU 1176

    免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  6. bzoj1208 [HNOI2004]宠物收养所(STL,Treap)

    1208: [HNOI2004]宠物收养所 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 5956  Solved: 2317[Submit][Sta ...

  7. 从cpu加电到加载OS内核的详细过程(清华大学ucore-lab1总结一)

    结合最近学习清华的OS课,先用“人话”来高度抽象的描述一下我自己的理解.CPU在系统加电也就是我们按下电源开关后,开始初始化他的寄存器,主要是cs和eip(本文基于x86架构),然后在ROM中找到一个 ...

  8. SRM 405(1-250pt, 1-500pt)

    DIV1 250pt 题意:以linux系统中文件系统的路径表示方法为背景,告诉你某文件的绝对路径和当前位置,求相对路径.具体看样例. 解法:模拟题,不多说.每次碰到STL的题自己的代码都会显得很sb ...

  9. about variables

    局部变量(Local Variable),全局变量(global variable),变量共享; 静态局部变量(static local variables),函数运行结束变量值不会消失,并且其它函数 ...

  10. M - 昂贵的聘礼 - poj1062

    Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低 ...