SQL数据库上传下载图片

从数据库下载图片

// 从数据库下载图片

// 

        private Image QueryImage()
        {
            string sqlcmd = "SELECT *FROM [OpticalBox].[dbo].[testimage] WHERE  id='3'";
            string constr = "server=;database=;User ID=;Password=";
            SqlConnection conn = new SqlConnection(constr);
            conn.Open();
            SqlCommand comm = new SqlCommand(sqlcmd, conn);
            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = comm;
            DataSet ds = new DataSet();
            da.Fill(ds);
            //把image类型的数据转成bytearray
            byte[] image = (byte[])ds.Tables[0].Rows[0][1];
            if (image.Length <= 0)
                return null;
            //舍弃数组前面八个字节,复制到新数组
            //byte[] image1 = image.Skip(8).Take(image.Length).ToArray(); 
            MemoryStream ms = new MemoryStream((byte[])ds.Tables[0].Rows[0][1]);
            Image img = Image.FromStream(ms);
            return img;
        }

从本地上载图片

// 从本地上载图片

// An highlighted block
///图片路径 filepath
        private void InsertImage(string filepath)
        {
            //创建文件流,加载图片。
            FileStream file = new FileStream(filepath, FileMode.Open);
            int streamLength = (int)file.Length;
            byte[] image = new byte[streamLength];//声明字节数组,保存图片文件
            file.Read(image, 0, streamLength); //把图片文件转换成字节数组保存
            file.Close();

            SqlConnection con = new SqlConnection();
            string sqlText = "server=;database=;User ID=;Password=";
            con.ConnectionString = sqlText;
            con.Open();
            SqlCommand cmd = new SqlCommand("insert  into [OpticalBox].[dbo].[testimage] ([image]) values( @image ) ;", con);
            cmd.Parameters.Add("@image", SqlDbType.Image);
            cmd.Parameters["@image"].Value = image;
            cmd.ExecuteNonQuery();
            cmd.Dispose();
            con.Close();
        }

你可能感兴趣的:(数据库,sql)