前两天做了一个项目,项目内容包括将图片保存到MSSQL后用水晶报表显示出来并打印,在网上查了许久,都是看到数据库里保存的是图片路径,很不方便,终于看到一个贴子,其实很简单,就是不要用dataset,只需要将数据源用XSDSchema代替,将字段类型设置成:base64Binary,水晶报表中指定数据源为新建数据源,指向这个XSDSchema,其它操作和用DATASET做为数据源是一样的,代码也是按DATASET的来操作,非常简便!感谢原创!
XSDSchema1.XSD设计:
=====================================
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="XSDSchema1" targetNamespace="http://tempuri.org/XSDSchema1.xsd" elementFormDefault="qualified" xmlns="http://tempuri.org/XSDSchema1.xsd" xmlns:mstns="http://tempuri.org/XSDSchema1.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="DataTable1">
<xs:complexType>
<xs:sequence>
<xs:element name="Column1" type="xs:base64Binary" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
======================================
FORM1代码:
Dim comm As New SqlCommand("select * from DataTable1", Conn)
Dim adapter As SqlDataAdapter = New SqlDataAdapter(comm)
Dim ds As New DataSet()
adapter.Fill(ds, "DataTable1")
Dim cr As New CrystalReport1
cr.SetDataSource(ds.Tables("DataTable1"))
Me.CrystalReportViewer1.ReportSource = cr
就这么简单