C#_图片存取数据库Winform

#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 [email protected] 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)为公共类空间名称

时间: 2024-08-01 17:17:15

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

C# SQLserver数据库图片存取

#region 数据库图片存取 /// <summary> /// <strong><span style="color:#ff0000;">导入图片到数据库</span></strong> /// </summary> /// <param name="filePath"></param> public void Import(string filePath) { st

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

此为文章备份,原文出处(我的网站)  [.NET 4.5] ADO.NET / ASP.NET 使用 Async 和 Await 异步 存取数据库 http://www.dotblogs.com.tw/mis2000lab/archive/2014/05/08/ado.net4.5_async_await_20140508.aspx 以前的ADO.NET也能作  "异步"(Async,大陆说法:异步),可以参考 KKBruce 2009/11月的文章: SQLCOMMAND的异步行程

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

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

java io之图片存取

一:建表 二:获取数据库连接 1:导入mysql的驱动jar包,mysql-connector-java-5.1.8-bin.jar 2:写代码连接数据库,如下: 1 /** 2 * 3 */ 4 package com.hlcui.file; 5 6 import java.sql.Connection; 7 import java.sql.DriverManager; 8 import java.sql.SQLException; 9 10 /** 11 * @author Administ

ASP + ACCESS 上传图片到数据库与将图片读出数据库显示之实现(详细版)

ASP上传图片至数据库内功能的实现 一般的无组件上传类,其上传过程是将图片先保存到指定文件夹,与此同时将该路径保存至数据库字段的.显示图片则是根据数据库表中的路径字段对应显示的.当然有关图片的管理,比如删除:只删除了路径,实际的图片需要根据该路径通过FSO进行删除--那有没有这样一种情况:将图片直接作为一个字段的值保存.对图片的操作就象是对数据字段的操作一样熟练.答案是肯定的,只是将该字段的类型设为OLE对象 知识点:OLE 对象字段用来存储诸如 Microsoft Word 或 Microso

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

在之前写了一篇blog:java画图程序_图片用字母画出来 主要是把一些调试的截图发布出来,现在程序调试我认为可以了(当然,你如果还想调试的话,也可以下载源码自己调试). 就把源码发布出来. 项目结构: 资源文件: 原图:http://images.cnblogs.com/cnblogs_com/hongten/356471/o_imagehandler_resource.png 运行效果: 原图:http://images.cnblogs.com/cnblogs_com/hongten/356

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

最近在研究怎样将图片用字母在文本编辑工具中“画”出来. 你看了这个可能还不知道我想说什么? 我想直接上图,大家一定就知道了 第一张:小猫 原图:http://www.cnblogs.com/hongten/gallery/image/143365.html 第二张:林允儿 原图:http://images.cnblogs.com/cnblogs_com/hongten/356471/o_star.png 第三张:郭静 原图:http://www.cnblogs.com/hongten/galle

ASP基础教程:ADO存取数据库时如何分页显示

<动态网站设计十八般武艺 --ASP 篇>一文从第一期至今已和朋友们一起度过了大半个年头,相信通过在这一段时间中的学习.实践到再学习.再实践,大家已经能够熟练运用 ASP 的内建对象. ActiveX 组件去编写一些基本的 ASP 应用程序.从我收到的朋友们的来信中可以明显的感觉到,大家的 ASP 功力正不断地提升.最近很多朋友来信希望我写一些 ASP 在现实运用中的实例.因此,从本期开始我决定将<动态网站设计十八般武艺 --ASP 篇>的定位从介绍和学习 ASP 基础知识转向到

asp数据库编程:ADO 存取数据库时如何分页显示

∈裁词?ADO 存取数据库时的分页显示?如果你使用过目前众多网站上的电子公告板程序的话,那你应该会知道电子公告板程序为了提高页面的读取速度,一般不会将所有的帖子全部在一页中罗列出来,而是将其分成多页显示,每页显示一定数目的帖子数,譬如 20 条.想不想了解如何实现分页显示?请看本文! <动态网站设计十八般武艺 --ASP 篇>一文从第一期至今已和朋友们一起度过了大半个年头,相信通过在这一段时间中的学习.实践到再学习.再实践,大家已经能够熟练运用 ASP 的内建对象. ActiveX 组件去编写