zoukankan      html  css  js  c++  java
  • 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;
    
            }
        }
    }
  • 相关阅读:
    Visual Studio 2010使用Visual Assist X的方法
    SQL Server 2000 评估版 升级到 SQL Server 2000 零售版
    双网卡多网络单主机同时访问
    开发即过程!立此纪念一个IT新名词的诞生
    delphi dxBarManager1 目录遍历 转为RzCheckTree2树
    5320 软件集合
    delphi tree 从一个表复制到另一个表
    DELPHI 排课系统课表
    长沙金思维 出现在GOOGLE的 金思维 相关搜索里啦!!
    如何在DBGrid的每一行前加一个单选框?
  • 原文地址:https://www.cnblogs.com/dlexia/p/4648992.html
Copyright © 2011-2022 走看看