Vb.net 在crystal report中显示图像
我想在VB.net中使用crystal report来显示包含条形码的图像。但是,当我运行应用程序时,在加载报告之前,我遇到了以下异常,尽管我已将crdb_adoplus.dll的引用添加到我的项目中 异常:无法加载文件或程序集“crdb_adoplus,版本=9.1.3300.0,区域性=中性,PublicKeyToken=692fbea5521e1304”或其依赖项之一。强名称验证失败。(HRESULT的例外:0x8013141A) 这是我的代码:Vb.net 在crystal report中显示图像,vb.net,crystal-reports,datatable,dataset,barcode,Vb.net,Crystal Reports,Datatable,Dataset,Barcode,我想在VB.net中使用crystal report来显示包含条形码的图像。但是,当我运行应用程序时,在加载报告之前,我遇到了以下异常,尽管我已将crdb_adoplus.dll的引用添加到我的项目中 异常:无法加载文件或程序集“crdb_adoplus,版本=9.1.3300.0,区域性=中性,PublicKeyToken=692fbea5521e1304”或其依赖项之一。强名称验证失败。(HRESULT的例外:0x8013141A) 这是我的代码: Private Sub Frm_Repor
Private Sub Frm_Reporting_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
CrystalReportViewer1.ReportSource = Nothing
Dim rptbarcode As RptPacking
rptbarcode = New RptPacking
Dim xrep As DataSet1
xrep = New DataSet1
Dim row As DataRow
Dim MyImg As Image = Nothing
Try
btnEncode(MyImg, BarcodeText)
row = xrep.Tables("DataTable1").NewRow
Dim ms As New MemoryStream()
MyImg.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)
Dim ii As Byte()
ii = ms.ToArray()
xrep.Tables("DataTable1").Rows.Add(ii)
rptbarcode.Load("GSMProduction.RptPacking.rpt")
rptbarcode.SetDataSource(xrep.Tables("DataTable1"))
CrystalReportViewer1.ReportSource = rptbarcode
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Private Sub btnEncode(ByRef pic As Image, ByVal txtData As String)
Dim W As Integer = 160
Dim H As Integer = 110
Dim b As BarcodeLib.Barcode
Dim type As BarcodeLib.TYPE = BarcodeLib.TYPE.UNSPECIFIED
type = BarcodeLib.TYPE.CODE128
b = New BarcodeLib.Barcode()
Try
If type <> BarcodeLib.TYPE.UNSPECIFIED Then
b.IncludeLabel = True
'===== Encoding performed here =====
pic = b.Encode(type, txtData, W, H)
'CType(Frm, frm_submitentery).pic_img.Image = pic.Image
'===================================
End If
Catch ex As Exception
'try
MessageBox.Show(ex.Message)
'catch
End Try
End Sub
Private Sub Frm_Reporting_Load(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理MyBase.Load
CrystalReportViewer1.ReportSource=无
与RPT包装相同的条形码
rptbarcode=新的RptPacking
Dim xrep作为数据集1
xrep=新数据集1
将行变暗为数据行
将MyImg设置为图像暗显=无
尝试
btnEncode(MyImg、条形码文本)
row=xrep.Tables(“DataTable1”).NewRow
将ms变暗为新内存流()
保存(ms,System.Drawing.Imaging.ImageFormat.Jpeg)
Dim ii作为字节()
ii=托雷女士()
xrep.表格(“DataTable1”).行添加(ii)
rptbarcode.Load(“GSMProduction.RptPacking.rpt”)
rptbarcode.SetDataSource(xrep.Tables(“DataTable1”))
CrystalReportViewer1.ReportSource=rptbarcode
特例
MessageBox.Show(例如Message)
结束尝试
端接头
专用子btnEncode(ByRef pic作为图像,ByVal txtData作为字符串)
尺寸W为整数=160
尺寸H为整数=110
将b调为条形码库。条形码
尺寸类型为BarcodeLib.type=BarcodeLib.type.UNSPECIFIED
type=BarcodeLib.type.CODE128
b=新的条形码库。条形码()
尝试
如果类型BarcodeLib.type.UNSPECIFIED,则
b、 IncludeLabel=True
'====此处执行的编码=====
pic=b.Encode(类型,txtData,W,H)
'CType(Frm,Frm_submitery).pic_img.Image=pic.Image
'===================================
如果结束
特例
“试试看
MessageBox.Show(例如Message)
“接住
结束尝试
端接头
我非常感谢您提前提出的建议。如果您在VS2010中运行.Net 4,则可能需要将以下内容添加到.config文件(配置部分):
b.Encode的返回类型是什么?它是一个图像,您可以在方法'Private Sub btnEncode'的签名中找到它(ByRef pic作为图像,ByVal txtData作为字符串)`
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>