#region 用于在PictureBox控件中显示选择的图片
        /// <summary>
        /// 用于在PictureBox控件中显示选择的图片
        /// </summary>
        /// <param name="openF">图像名</param>
        /// <param name="MyImage">pictureBox控件ID</param>
        public void Read_Image(OpenFileDialog openF, PictureBox MyImage)//显示选择的图片
        {
            //指定OpenFileDialog控件打开的文件格式
            openF.Filter = "*.jpg|*.jpg|*.bmp|*.bmp";
            if (openF.ShowDialog()==DialogResult.OK)
            {
                try
                {
                    //将图片文件存入到PictureBox控件中
                    MyImage.Image = System.Drawing.Image.FromFile(openF.FileName);
                }
                catch (Exception)
                {
                    //弹出错误信息
                    MessageBox.Show("您选择的图片不能被读取或文件类型不对!","错误",MessageBoxButtons.OK,MessageBoxIcon.Warning);
                    throw;
                }
            }
        }

#endregion

#region 用于将图片以二进制形式存入数据库中
        /// <summary>
        /// 用于将图片以二进制形式存入数据库中
        /// </summary>
        /// <param name="FilmID">影片ID</param>
        /// <param name="openF"></param>
        public void SaveImage(string FilmID, OpenFileDialog openF)//将图片以二进制存入数据库中
        {
            string strimg = openF.FileName.ToString();  //记录图片的所在路径
            FileStream fs = new FileStream(strimg, FileMode.Open, FileAccess.Read); //将图片以文件流的形式进行保存
            BinaryReader br = new BinaryReader(fs);
            byte[] imgBytesIn = br.ReadBytes((int)fs.Length);//将流读入到字节数组中
            SqlConnection conn = sqlhelper.getcon();
            conn.Open();
            StringBuilder strSql = new StringBuilder();
            strSql.Append("update T_Film Set F_FPhoto=@Photo where F_FId=" + FilmID);
            SqlCommand cmd = new SqlCommand(strSql.ToString(), conn);
            cmd.Parameters.Add("@Photo", SqlDbType.Binary).Value = imgBytesIn;
            cmd.ExecuteNonQuery();
            conn.Close();
        }
        #endregion

#region 用于将图片从数据库中取出并显示在PictureBox控件中
        /// <summary>
        /// 用于将图片从数据库中取出并显示在PictureBox控件中
        /// </summary>
        /// <param name="FilmID">影片ID</param>
        /// <param name="pb">PictureBox控件ID</param>
        public void Get_Image(string FilmID, PictureBox pb)//将图片从数据库中取出
        {
            byte[] imagebytes = null;
            SqlConnection conn = sqlhelper.getcon();
            conn.Open();
            SqlCommand com = new SqlCommand("select * from T_Film where F_FId='" + FilmID + "'", conn);
            SqlDataReader dr = com.ExecuteReader();
            while (dr.Read())
            {
                imagebytes = (byte[])dr.GetValue(10);
            }
            dr.Close();
            conn.Close();
            MemoryStream ms = new MemoryStream(imagebytes);
            Bitmap bmpt = new Bitmap(ms);
            pb.Image = bmpt;
        }        
        #endregion

上面三个分别为公共类,第一个为打开对话框,第二个为将图像以二进制存入数据库,第三个为从数据库中读取出来。

在窗体代码中, Mymenu.Get_Image(FilmID, picboxPhoto);直接用就可以了(Mymenu)为公共类空间名称

C#_图片存取数据库Winform的更多相关文章

  1. C# winfrom 存取图片到数据库(二进制,image)

    1.读取本地图片到PictureBox public void InageShow(PictureBox PB) { OpenFileDialog openfile = new OpenFileDia ...

  2. java画图程序_图片用字母画出来_源码发布_版本二

    在上一个版本:java画图程序_图片用字母画出来_源码发布 基础上,增加了图片同比例缩放,使得大像素图片可以很好地显示画在Notepad++中. 项目结构: 运行效果1: 原图:http://imag ...

  3. java画图程序_图片用字母画出来_源码发布

    在之前写了一篇blog:java画图程序_图片用字母画出来 主要是把一些调试的截图发布出来,现在程序调试我认为可以了(当然,你如果还想调试的话,也可以下载源码自己调试). 就把源码发布出来. 项目结构 ...

  4. java画图程序_图片用字母画出来

    最近在研究怎样将图片用字母在文本编辑工具中“画”出来. 你看了这个可能还不知道我想说什么? 我想直接上图,大家一定就知道了 第一张:小猫 原图:http://www.cnblogs.com/hongt ...

  5. [原创]html5_PC游戏_图片俄罗斯方块

    PC游戏_图片俄罗斯方块 以前的了,快一年了... 使用了离线canvas复制的方法,启动预览效果需要服务器支持 另外,AC娘图片可以自己做加载功能,这样游戏图片显示更顺畅 效果: --- 代码: h ...

  6. [.NET 4.5] ADO.NET / ASP.NET 使用 Async 和 Await 异步 存取数据库

    此为文章备份,原文出处(我的网站)  [.NET 4.5] ADO.NET / ASP.NET 使用 Async 和 Await 异步 存取数据库 http://www.dotblogs.com.tw ...

  7. (转载)delphi 把图片存入数据库

    delphi 把图片存入数据库 procedure TForm1.Button1Click(Sender: TObject); // 插入图片过程var Stream:TMemoryStream;be ...

  8. 「Python-Django」django 实现将本地图片存入数据库,并能显示在web上

    1. 将图片存入数据库 关于数据库基本操作的学习,请参见这一篇博客:https://www.cnblogs.com/leejy/p/6745186.html 这里我默认,您已经会了基本操作,能在数据库 ...

  9. 使用python把图片存入数据库-乾颐堂

    一般情况下我们是把图片存储在文件系统中,而只在数据库中存储文件路径的,但是有时候也会有特殊的需求:把图片二进制存入数据库. 今天我们采用的是python+mysql的方式 MYSQL 是支持把图片存入 ...

随机推荐

  1. Java 获取表格中某一个单元格的值

    需求 搜索页面返回表格样搜索结果, 获取搜索结果中某个单元格的具体值. 以下图为例, 下表是搜索返回的结果, 第一行是各个列的名字, 其它是具体的返回值. 方法1: 根据用户输入的表头名来确定是第几列 ...

  2. 转:SQL Server - 使用 Merge 语句实现表数据之间的对比同步

    表数据之间的同步有很多种实现方式,比如删除然后重新 INSERT,或者写一些其它的分支条件判断再加以 INSERT 或者 UPDATE 等.包括在 SSIS Package 中也可以通过 Lookup ...

  3. git 创建本地仓库、远程仓库,上传项目

    1.在本地想创建git仓库的地方创建本地仓库 首先右键打开 Git Bash Here,如果没有,请先安装git,下载地址:https://git-scm.com/downloads git init ...

  4. 个人技术博客Alpha----Android Studio UI学习

    项目联系 这次的项目我在前端组,负责UI,下面简略讲下学到的内容和使用AS过程中遇到的一些问题及其解决方法. 常见UI控件的使用 1.TextView 在TextView中,首先用android:id ...

  5. web页面中快速找到html对应元素两种方法

    一.第一种方法(通过先进入开发模式然后再去选择网页元素) 1.打开IE.Chrome.FireFox等,按 F12 键进入开发模式 2.在打开的控制窗口左上角有个  箭头 按钮,点击它之后,此时将鼠标 ...

  6. python3的C3算法

    一.基本概念 1. mro序列 MRO是一个有序列表L,在类被创建时就计算出来. 通用计算公式为: mro(Child(Base1,Base2)) = [ Child ] + merge( mro(B ...

  7. 控件_ImageView

    ImageView(图片视图)的基本概念:就是将一张图片放在一个Activity中显示出来,就是一个放图片的容器 import android.app.Activity; import android ...

  8. vlookup函数应用

    筛选状态下的复制粘贴 第一步 原数据 第二步 筛选内容 第三步 使用vlookup '=VLOOKUP(A1,$A\(1:\)A$19,1,0)' 第四步 往下拖拉结果 最终结果

  9. Android 怎样开启与关闭adb 的认证机制(google adb secure) (adb RSA 指纹认证)

    前言         欢迎大家我分享和推荐好用的代码段~~声明         欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net           ...

  10. 洛谷 P1032 字串变换

    题目描述 已知有两个字串 A, B 及一组字串变换的规则(至多6个规则): A1 -> B1 A2 -> B2 规则的含义为:在 A$中的子串 A1 可以变换为 B1.A2 可以变换为 B ...