winform图片读取存储于数据库SQL

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Data.SqlClient;

namespace WindowsFormsApplication10
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            openFileDialog1.Filter = "@.Jpg|*.jpg|@.Gif|*.gif|@.Png|*.png|All files|*.*";
            DialogResult dr = openFileDialog1.ShowDialog();

            if (dr == DialogResult.OK)
            {
                //将图片读入到文件流
                FileStream fs = new FileStream(openFileDialog1.FileName,FileMode.Open,FileAccess.Read);//路径
                Image img = System.Drawing.Bitmap.FromStream(fs);//绘制,流转成图片
                pictureBox1.Image = img;//指定,显示图片
                fs.Close();

            }
        }

        private void button2_Click(object sender, EventArgs e)//存入数据库
        {
            openFileDialog1.Filter = "@.Jpg|*.jpg|@.Gif|*.gif|@.Png|*.png|All files|*.*";
            DialogResult dr = openFileDialog1.ShowDialog();
            if (dr == DialogResult.OK)
            {
                //文件流
                FileStream fs = new FileStream(openFileDialog1.FileName,FileMode.Open,FileAccess.Read);
                BinaryReader br = new BinaryReader(fs);//二进制读取器
                byte[] buffer =  br.ReadBytes(int.Parse(fs.Length.ToString()));

                //连接数据库
                SqlConnection conn = new SqlConnection("server=.;database=snewData;user=sa;pwd=");
                SqlCommand cmd = conn.CreateCommand();
                cmd.CommandText = "insert into imgtable values(@buffer)";
                cmd.Parameters.Add("@buffer",buffer);
                conn.Open();
                cmd.ExecuteNonQuery();
                cmd.Dispose();
                conn.Close();
            }
        }

        private void button3_Click(object sender, EventArgs e)//数据库读取
        {
            //读取数据库
            byte[] buffer = null;
            SqlConnection conn = new SqlConnection("server=.;database=snewData;user=sa;pwd=");
            SqlCommand cmd = conn.CreateCommand();
            cmd.CommandText = "select *from imgtable where code=4";
            conn.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            if (dr.Read())
            {
                 buffer = (byte[])dr["imgs"];
            }
            cmd.Dispose();
            conn.Close();
            //将二进制数据buffer显示为图片
            MemoryStream ms = new MemoryStream(buffer);//构建对象
            ms.Write(buffer,0,buffer.Length);//写到内存流中
            Image img = System.Drawing.Image.FromStream(ms);
            pictureBox1.Image = img;

        }
    }
}
时间: 2024-10-07 12:58:33

winform图片读取存储于数据库SQL的相关文章

转-关于图片或者文件在数据库的存储方式归纳

商品图片,用户上传的头像,其他方面的图片.目前业界存储图片有两种做法: 1.  把图片直接以二进制形式存储在数据库中 一般数据库提供一个二进制字段来存储二进制数据.比如mysql中有个blob字段.oracle数据库中是blob或bfile类型 2.  图片存储在磁盘上,数据库字段中保存的是图片的路径. 一.图片以二进制形式直接存储在数据库中 第一种存储实现(php语言): 大体思路: 1.将读取到的图片用php程序转化成二进制形式.再结合insert into 语句插入数据表中的blob类型字

物理数据库设计 - 文件是否应该存储在数据库中

多媒体文件已经广泛应用在很多程序当中.比如用户的头像,汽车的产品图片等等. 从我个人以往的经验来看,将文件的路径存储入数据库,然后文件本身存储于硬盘当中已是万年不变的解决方案. 其实,存储图片路径与存储图片文件本身,两种方案都有很好的立足点,但是大部分程序员都是将文件存储于数据库之外.虽然,这种方法没有什么大问题,但的确是存在一定的风险的. 一.问题描述 下面就来论述一下关于将文件存储于数据库外部的缺点. 1.垃圾回收问题. 当你想删除一张图片时,你只能够删除掉数据库中的记录,图片文件是没有办法

ASP.NET中让图片以二进制的形式存储在数据库中

今早有个网友问到我这问题,以前我都是直接在数据库中存文件名的,还没有试过存储整张图片到数据库中,上网搜索了一下,自己又测试了一番,代码如下:建立保存图片的表的SQL语句: Sql代码   USE [niunantest] GO /****** 对象:  Table [dbo].[picdata]    脚本日期: 03/30/2010 14:51:58 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [d

在数据库中 存储图片 以及 在界面中显示图片(存储图片路径)- 这种方法相对与存储二进制文件好

花了一下午时间,终于学会了在数据库中存储图片,以及在界面中显示图片了. 存储图片有两种方法: 一种是:直接把图片转换成二进制文件存储在数据库中. 一种是:存储图片的路径到数据库,用的时候直接调用路径给image等图像控件即可. 两种方法,有利有弊,第一种方法适合存储量少且重要的图片信息.第二种方法适合存储量大但不是太重要的图片. 我使用的是第二种方法,简单,实用. 下面就是我具体的实现过程: 首先我新建了两个网页文件,insert_photo.aspx / select_photo.apsx 第

php将图片保存到mysql数据库及从数据库中读取图片的方法源码 转

php将图片保存到mysql数据库及从数据库中读取图片的方法源码 分类: 网站 2012-03-11 15:25 5059人阅读 评论(0) 收藏 举报 数据库mysqlphpsql serverquerydatabase 一般来讲都是把图片保存到服务器下,然后根据路径读出的,但是有时候出于安全及版权什么的考虑,会把图片保存到mysql的数据库中,然后再读出来,这样的图片点击右键属性,是看不到图片地址的.下面逍遥一生就介绍下如何用php把图片存储到mysql中及如何读出.     MySQL数据

Java 图片读取与存储

1 @Override 2 public Image myWrite(Image image, String filePath) throws IOException { 3 if (image == null) { 4 throw new IOException("Image is null!"); 5 } 6 7 // create a file 8 File imgFile = new File(filePath + ".bmp"); 9 BufferedIm

RDLC报表显示存储于数据库的图片

图片以二进制存储于数据库表中.在显示RDLC报表时,把图片呈现出来. 好吧. 把存储过程写好: CREATE PROCEDURE [dbo].[usp_File_Select] AS SELECT [Afd_nbr],[Picture],[PictureType],[FileExtension] FROM [dbo].[ApiFileDemo] GO Source Code 在网站中,创建一个实体,是程序从数据库获取数据: public DataTable GetFiles() { sp.Con

C#窗体读取EXCEL并存入SQL数据库的方法

本文实例讲述了C#窗体读取EXCEL并存入SQL数据库的方法.分享给大家供大家参考.具体实现方法如下: windows窗体上放了一个Textbox1,2个按钮button1和button2~按button1选择excel文件~按button2进行相关处理 代码如下: private  void button1_click(object sendeer,EventArgs e) { OpenFileDialog  openFiledialog1=new OpenFileDialog(); open

oracle数据库sql的基本使用

整理了下关于oracle数据库中SQL的基本使用语句,整理如下,方便记忆. oracle的基本术语 数据字典,数据库元数据信息的数据字典表和用户可以读取的数据字典视图组成.存放oracle数据库所用的有关信息.通过数据字典可以查看数据表和用户的一些信息. 数据文件,一个oracle数据可以拥有一个或多个物理的数据文件,一个数据文件只对于一个数据库 表空间,存储的逻辑结构,是组织数据和进行空间分配的逻辑结构.简单点,表空间就是一个或者多个数据文件的集合,所有的数据文件都被逻辑的存放在指定的表空间中