首页 > 数据库 >图保存为SQL

图保存为SQL

时间:2023-09-13 09:26:03浏览次数:56  
标签:fs 数据库 cmd 保存 SQL new byte

private void Form1_Load(object sender, EventArgs e)
        {
            #region 保存数据库
            string url = @"C:\Users\Administrator\Desktop\tiger.jpg";
            byte[] dd = GetPictureData(url);

            kkkkk(dd);//保存到数据库中  
            #endregion


            Read();// 从数据库中读取保存到 C盘 

        }
        /// <summary>
        /// 保存到数据库
        /// </summary>
        /// <param name="imgBytesIn"></param>
        private void kkkkk(byte[] imgBytesIn)
        {
                try
                {
                    SqlConnection con = new SqlConnection("server=192.168.1.118,1433;uid=sa;pwd=123456;database=aa");
                    con.Open();
                    SqlCommand cmd = new SqlCommand("insert  into aaaa (img) values( @Image ) ;", con);
                    cmd.Parameters.Add("@Image", SqlDbType.Image);
                    cmd.Parameters["@Image"].Value = imgBytesIn;
                    cmd.ExecuteNonQuery();
 
                    con.Close();
                    MessageBox.Show("图片上传成功"); 
 
                }
                catch
                {
                    MessageBox.Show("您选择的图片不能被读取或文件类型不对!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                   
                }
               
        }      
        /// <summary>
        /// 从数据库中  图片 并且保存到C盘
        /// </summary>
        public void Read()
         {
             byte[] MyData = new byte[0];
             using (SqlConnection conn = new SqlConnection("server=192.168.1.118,1433;uid=sa;pwd=123456;database=aa"))
             {
                 conn.Open();
                 SqlCommand cmd = new SqlCommand();
                 cmd.Connection = conn;
                 cmd.CommandText = "select * from aaaa";
                 SqlDataReader sdr = cmd.ExecuteReader();
                 sdr.Read();
                 object o = sdr["img"];
                 MyData = (byte[])sdr["img"];//读取第一个图片的位流
                 int ArraySize= MyData.GetUpperBound(0);//获得数据库中存储的位流数组的维度上限,用作读取流的上限
 
                FileStream fs = new FileStream(@"c:\00.jpg", FileMode.OpenOrCreate, FileAccess.Write);
                 fs.Write(MyData, 0, ArraySize);
                 fs.Close();   //-- 写入到c:\00.jpg。
                 conn.Close();
                 Console.WriteLine("读取成功");//查看硬盘上的文件
             }
         }

        /// <summary>
        /// 根据路径将图片转换成 byte[]
        /// </summary>
        /// <param name="imagepath"></param>
        /// <returns></returns>
        public byte[] GetPictureData(string imagepath)
        {
            /**/
            ////根据图片文件的路径使用文件流打开,并保存为byte[] 
            FileStream fs = new FileStream(imagepath, FileMode.Open);//可以是其他重载方法 
            byte[] byData = new byte[fs.Length];
            fs.Read(byData, 0, byData.Length);
            fs.Close();
            return byData;
        }

 

标签:fs,数据库,cmd,保存,SQL,new,byte
From: https://www.cnblogs.com/xkdn/p/17698574.html

相关文章

  • T-SQL——关于数据合并(Merge)
    目录0.背景说明及测试数据1.直接清空,重新插入2.单条记录执行插入、更新操作3.Merge函数3.1准备测试数据3.2测试Merge3.3关于Merge4.参考shanzm-2023年9月12日21:09:040.背景说明及测试数据什么是合并?根据记录是否已经存在,决定是否插入、更新或删除简单说明,数据库需......
  • MySQL SQL语法大全
    SQL语法基础知识总结|JavaGuide(Java面试+学习指南)基本概念数据库术语数据库(database)-保存有组织的数据的容器(通常是一个文件或一组文件)。数据表(table)-某种特定类型数据的结构化清单。模式(schema)-关于数据库和表的布局及特性的信息。模式定义了数据在表中如何存储......
  • 通过SQL Server操作MySQL(下)—— 操作MySQL
    查询MySQL语句select*fromopenquery(TestMySQL,'select*fromtest.TestTable');向MySQL表中插入数据insertintoopenquery(TestMySQL,'select*fromtest.TestTable')select1,'TestName';删除MySQL表中的数据deletefromopenquery(TestMyS......
  • 【SQL Server】通过SQL Server操作MySQL(上)——连接MySQL服务器
    http://t.zoukankan.com/xd502djj-p-3104191.html 在多种数据库环境下,经常会遇见不同数据库之间转换数据或进行互相操作的情况。以下简要介绍下用SQLServer操作MySQL的步骤和方法。安装MySQL驱动想要在SQLServer中操作MySQL,首先要在SQLServer所在的服务器上安装MySQL的驱......
  • MySQL字符集详解——utf8mb4 & utf8区别?
    字符集详解|JavaGuide(Java面试+学习指南)MySQL字符编码集中有两套UTF-8编码实现:utf8和**utf8mb4**。如果使用utf8的话,存储emoji符号和一些比较复杂的汉字、繁体字就会出错。何为字符集?字符是各种文字和符号的统称,包括各个国家文字、标点符号、表情、数字等等。......
  • sql知识点
    sql知识点1.查看唯一值distinct2.筛选满足条件怎么样,不满足条件怎么样casewhen条件then(满足条件执行)else(不满足条件执行)end;(括号中可以是常量、变量、表达式也可以嵌套其他语句)casewhenA_name=''thendemoelseA_nameend;casewhennvl(b.CITY_NAME,'')......
  • Linux操作系统下安装与配置MySQL
    一、安装与配置[root@mysql1~]#cat/etc/redhat-releaseCentOSLinuxrelease7.9.2009(Core)https://downloads.mysql.com/archives/community/#下载地址[root@mysql1tools]#rpm-ivhmysql-community-client-5.7.18-1.el7.x86_64.rpm警告:mysql-community-client-5.......
  • MySQL异常断电恢复脚本
    #!/bin/bashuser="root"host="127.0.0.1"passwd="password"conf_file="/etc/mysql/mysql.conf.d/mysqld.cnf"backup_file="/home/ehigh/DB.sql"data_dir="/var/lib/mysql"if[$(id-u)-ne0];then......
  • sqlalchemy 排序方式 flask
    第一种:直接在查询语句中使用order_by现在就用第一种方法实现刚才所说(最新注册的用户的拍在前面),最新注册的也就是时间最大的。代码如下results=session.query(User).order_by(User.create_time.desc()).all()print(results)运行结果如下。 嗯,结果如我们所愿(时间按从大到小......
  • MySQL-分区表和分区介绍
    一、MySQL分区简介1、数据库分区数据库分区是一种物理数据库设计技术。虽然分区技术可以实现很多效果,但其主要目的是为了在特定的SQL操作中减少数据读写的总量以缩减sql语句的响应时间,同时对于应用来说分区完全是透明的。MYSQL的分区主要有两种形式:水平分区和垂直分区①、水平......