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();
        }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值