reportviewer rdlc 报表 显示数据库中的图片

2025-10-28 06:45:34

1、生成二维码图片

 private byte[] GenByZXingNet(string msg)


        {
            BarcodeWriter writer = new BarcodeWriter();
            writer.Format = BarcodeFormat.QR_CODE;
            writer.Options.Hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8");//编码问题
            writer.Options.Hints.Add(EncodeHintType.ERROR_CORRECTION, ZXing.QrCode.Internal.ErrorCorrectionLevel.H);
            const int codeSizeInPixels = 250;   //设置图片长宽
            writer.Options.Height = writer.Options.Width = codeSizeInPixels;
            writer.Options.Margin = 0;//设置边框
            ZXing.Common.BitMatrix bm = writer.Encode(msg);
            Bitmap img = writer.Write(bm);
            //pictureBox1.Image = img;
           
           // return img;
         return   BitmapToBytes(img);
        }

2、转换成数据流

 private byte[] BitmapToBytes(Bitmap bitmap)


        {
            MemoryStream ms = null;
            try
            {
                ms = new MemoryStream();
                bitmap.Save(ms, ImageFormat.Gif);
                byte[] byteImage = new Byte[ms.Length];
                byteImage = ms.ToArray();
                return byteImage;
            }
            catch(ArgumentNullException ex)
            {
                throw ex;
            }
            finally
            {
                ms.Close();
            }
        }

3、转换64编码数据

  byte[] mm=  GenByZXingNet(txt_lzkh.Text.Trim());


                                   
                        string m=   Convert.ToBase64String(mm);

4、图片 保存到数据库

 StringBuilder strsql6 = new StringBuilder();


                            strsql6.Append("INSERT INTO [dbo].[tb_ck_mpckckzb]([出库单号] ,[流转卡号] ,[缸号],[订单编号],[客户名称] ,[出库日期],[制单人],[客户合约],[计划单号],[二维码])");
                            strsql6.Append("values('" + spzd.Ckdh + "','" + jhzd.Lzkh + "','" + jhzd.Gh + "','" + spzd.Ddbh + "','" + spzd.Khmc + "','" + spzd.Zdrq + "','" + spzd.Zdr + "','" + ddzd.Khhy + "','" + spzd.Jhdh + "','" + m + "')");
                            cmd.CommandText = strsql6.ToString();
                            cmd.ExecuteNonQuery();

5、=System.Convert.FromBase64String(Fields!二维码.Value)

6、打印预览

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢