zoukankan      html  css  js  c++  java
  • 数据库存储图片和读取图片

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
    using System.Data.SqlClient;
    
    namespace WindowsFormsApplication2
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                OpenFileDialog op = new OpenFileDialog();
                DialogResult isok = op.ShowDialog();
                if (isok==DialogResult.OK)
                {
                    //公开以文件为主的 Stream,既支持同步读写操作,也支持异步读写操作。
                    FileStream fs = new FileStream(op.FileName, FileMode.Open);//mode一个常数,用于确定如何打开或创建文件。
                    Image img = System.Drawing.Bitmap.FromStream(fs);
                    pictureBox1.Image = img;
                    fs.Close();
                }
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                OpenFileDialog op = new OpenFileDialog();
                DialogResult isok = op.ShowDialog();
                if (isok == DialogResult.OK)
                {
                    //读取图片存入数据库
                    FileStream fs = new FileStream(op.FileName, FileMode.Open);
                    BinaryReader br = new BinaryReader(fs);//二进制读取器
                    byte[] buffer=new byte[fs.Length];//二进制字节数组
                    buffer=br.ReadBytes((int)fs.Length);
                    SqlConnection conn = new SqlConnection("server=.;database=car;uid=sa;pwd=123");
                    SqlCommand cmd = conn.CreateCommand();
                    cmd.CommandText = "insert into pic values(4,@buffer)";
                    cmd.Parameters.Clear();
                    cmd.Parameters.Add("@buffer",buffer);
                    conn.Open();
                    cmd.ExecuteNonQuery();
                    cmd.Dispose();
                    cmd.CommandText = "select top 1 * from pic order by code desc";
                    SqlDataReader dr = cmd.ExecuteReader();
                    byte[] by = new byte[fs.Length];
                    if (dr.Read())
                    {                                       
                        by=(byte[])(dr["pics"]);
                    }
                    MemoryStream ms = new MemoryStream(by);
                    Image img = System.Drawing.Bitmap.FromStream(ms);
                    pictureBox1.Image = img;
                }
            }
        }
    }
  • 相关阅读:
    信息安全[0836]
    05 二极管的微变等效和稳压二极管
    04 二极管的直流等效通路
    STM32 ADS112C04
    03 PN与二极管的特性
    STM32中的程序在RAM还是FLASH里运行?
    基于STM32的MLX90614人体红外测温枪
    KEIL5如何打开KEIL4工程 [复制链接]
    02 PN结的形成
    PreparedStatement和Statament的性能
  • 原文地址:https://www.cnblogs.com/happinesshappy/p/4562890.html
Copyright © 2011-2022 走看看