• 数据库存储图片和读取图片


    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;
                }
            }
        }
    }
  • 相关阅读:
    获取指定字符传的长度或者高度
    检测身份证号码是否合法
    tabbar添加小红点
    单例的简单构造
    iOS程序内发短信
    多项式加法运算 使用链表实现
    链表的数组实现
    使用链表实现堆栈
    使用链表实现堆栈
    求最大子列和的几种方法
  • 原文地址:https://www.cnblogs.com/happinesshappy/p/4562890.html
Copyright © 2020-2023  润新知