• 8、图片的上传与读取


    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 WindowsFormsApplication1
    {
        public partial class FormImage : Form
        {
            public FormImage()
            {
                InitializeComponent();
            }
         //上传
            private void button1_Click(object sender, EventArgs e)
            {
                openFileDialog1.Filter = "*jpg|*.jpg|*bmp|*.bmp|*gif|*.gif"; 
                DialogResult dia = openFileDialog1.ShowDialog();
                if (dia == DialogResult.OK)
                {
                    string filename = openFileDialog1.FileName;
                    FileStream fs = new FileStream(filename,FileMode.Open,FileAccess.Read);//将图片读入流中
                    byte[] imagebytes = new byte[fs.Length];//二进制数组,用以临时存储图像的二进制编码
                    BinaryReader br = new BinaryReader(fs);//二进制读取器
                    imagebytes = br.ReadBytes(Convert.ToInt32(fs.Length));//将图片读入到二进制数组中
                    //开始连接数据库存入数据库中
                    SqlConnection conn = new SqlConnection("server=.;database=schoolData;user=sa;pwd=");
                    conn.Open();
                    SqlCommand cmd = conn.CreateCommand();
                    cmd.CommandText = "insert into tutable values(@image)";
                    cmd.Parameters.Clear();
                    cmd.Parameters.Add("@image",imagebytes);
                    cmd.ExecuteNonQuery();
                    conn.Close();
                    MessageBox.Show("图片上传成功");
                }
            }
            //读取
            private void button2_Click(object sender, EventArgs e)
            {
                SqlConnection conn = new SqlConnection("server=.;database=schoolData;user=sa;pwd=");
                conn.Open();
                SqlCommand cmd = conn.CreateCommand();
                cmd.CommandText = "select top 1 *from tutable";
                SqlDataReader dr = cmd.ExecuteReader();
                dr.Read();
                byte[] imgbytes = (byte[])dr["tuxiang"];
                //将图像写入内存
                MemoryStream ms = new MemoryStream(imgbytes, 0, imgbytes.Length);
                ms.Write(imgbytes, 0, imgbytes.Length);
                Image img = Image.FromStream(ms);
                this.pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
                this.pictureBox1.Image = img;
            }
        }
    }
  • 相关阅读:
    如何去掉视频四周的黑边,使之充满整个屏幕?
    EMQX 入门实战(2)MQTT Java 客户端库使用
    Elasticsearch 入门实战(1)简介
    EMQX 入门实战(1)安装及简单使用
    浅聊Mybatis是怎么扫描并且注入到spring容器中的(源码向)
    Docker安装常用服务命令笔记
    Java中Stream相关常用总结记录
    注解和自定义注解
    集合框架ArrayList学习和总结
    不定长可重复字符组合枚举递归函数
  • 原文地址:https://www.cnblogs.com/XMH1217423419/p/4300037.html
Copyright © 2020-2023  润新知