zoukankan      html  css  js  c++  java
  • C#中 将图片保存到Sql server 中

          private void Form1_Load(object sender, EventArgs e)
            {
                #region 保存数据库
                string url = @"C:UsersAdministratorDesktop	iger.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:0.jpg", FileMode.OpenOrCreate, FileAccess.Write);
                     fs.Write(MyData, 0, ArraySize);
                     fs.Close();   //-- 写入到c:0.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;
            }
  • 相关阅读:
    5、垂直拆分---分库--mycat
    4、读写分离---双主双从(mycat)
    3、读写分离---一主一从(mycat)
    2、安装启动(Mycat)
    1、入门(Mycat)
    Nginx 相关参数记录(2)
    Nginx 相关参数记录(1)
    Linux
    一大波学习内容!
    开源镜像站
  • 原文地址:https://www.cnblogs.com/cl1006/p/10181520.html
Copyright © 2011-2022 走看看