VB代码,改改即可,数据库是oracle Dim ReportDoc As New ReportDocument Dim LogonInfo As New TableLogOnInfo Dim myTable As Table ReportDoc.Load("D:\VS程序\成品仓库基本数据维护\成品仓库基本数据维护20050303\CrystalReport1.rpt") For Each myTable In ReportDoc.Database.Tables LogonInfo = myTable.LogOnInfo With LogonInfo.ConnectionInfo .ServerName = "dctdb" .UserID = "bridgestone" .Password = "bswx" End With myTable.ApplyLogOnInfo(LogonInfo) Next myTable CRV.ReportSource = ReportDoc ReportDoc.Load("D:\VS程序\WindowsApplication3\CrystalReport1.rpt")
说详细点行吗?你这样说等于没说
一般情况下,都是用数据集而没传数据表。rptDoc.Database.Tables[0].SetDataSource(MyTable);
看看你的代码才知道啊,
Dim LogonInfo As New TableLogOnInfo
Dim myTable As Table ReportDoc.Load("D:\VS程序\成品仓库基本数据维护\成品仓库基本数据维护20050303\CrystalReport1.rpt") For Each myTable In ReportDoc.Database.Tables
LogonInfo = myTable.LogOnInfo
With LogonInfo.ConnectionInfo
.ServerName = "dctdb"
.UserID = "bridgestone"
.Password = "bswx"
End With
myTable.ApplyLogOnInfo(LogonInfo)
Next myTable CRV.ReportSource = ReportDoc ReportDoc.Load("D:\VS程序\WindowsApplication3\CrystalReport1.rpt")
说明你的数据库连接配置有问题,你连接的是什么数据库?
个人认为不要让水晶报表去连接数据库,自己在程序中连接数据库,
把dataSet传递给水晶报表比较好控制