2012-04-16 67 views
0

我在asp.net中做了一个水晶报表。我的数据库是MS-Access 2007.我使用数据集将报告与数据库连接起来。现在,当我执行程序时,会出现“数据库登录失败”错误。用asp.net连接水晶报表时数据库登录失败

如何解决这个问题?

请帮助..

问候 阿布舍克

+0

可以显示为数据集生成的“asp”代码 – Raghuveer 2012-04-16 05:33:05

回答

0

我不知道你怎么可以用数据集进行连接。从你的文章中,我假设你可能正在填充一个数据集,并使用这个数据集与报告进行数据绑定。

在这种情况下,您应该为数据集中的表格提供一个名称。

数据集中表的名称必须与设计报表的表或视图完全匹配。否则Crystal报表将无法找到它。

ds.Tables[0].Name="yourTableorViewNameHere"; 

您还需要提供登录信息到您的报告。

private void myLogonInfo(CrystalDecisions.CrystalReports.Engine.ReportDocument myReport) 
{ 
    TableLogOnInfo logOnInfo = new TableLogOnInfo(); 

    string server = "MyServer"; 
    string userID = "User1"; 
    string passwd = "MyPw"; 
    string DBNAME = "MyDB"; 

    int i = 0; 
    for (i = 0; i <= myReport.Database.Tables.Count - 1; i++) 
    { 
     logOnInfo.ConnectionInfo.ServerName = server; 
     logOnInfo.ConnectionInfo.UserID = userID; 
     logOnInfo.ConnectionInfo.Password = passwd; 
     logOnInfo.ConnectionInfo.DatabaseName = DBNAME; 
     myReport.Database.Tables[i].ApplyLogOnInfo(logOnInfo); 
    } 
} 

编辑

这里是初始化报告

private void ShowRep(dataset ds) 
{ 
ReportDocument rptDoc = new ReportDocument(); 
rptDoc.Load(Server.MapPath("MyReport.rpt")); 

//either assign the dataset to the report here 
rptDoc.SetDataSource(ds); 

//or provide the login details 
//myLogonInfo(rptDoc); 

//assign record filtering here 
//rptDoc.RecordSelectionFormula = "{RDNewCollections.tdate}>=" + GetCrystalDate(ffdt.Text) ; 

// set some report parameters 
rptDoc.SetParameterValue(0, ffdt.Text); 
rptDoc.SetParameterValue(1, tdt.Text); 

//finally assign the report to the reportviewer 
Crv.ReportSource = rptDoc; 

} 

您可以从页面加载调用此代码。

如果您使用数据集,则无需传递logonifo。如果你没有使用数据集,那么你必须调用logoninfo。

+0

我没有编写任何代码将报告连接到数据集。我的访问数据库中也没有用户名和密码。在哪里写ds.Tables [0] .Name =“yourTableorViewNameHere”(在formload ???)...还有,我必须给每个记录的登录信息? – Abhishek 2012-04-16 05:59:52

+0

不,你不能提供每条记录的登录信息。 – Deb 2012-04-16 07:03:00

+0

您可以在C:\ Program Files \ Microsoft Visual Studio 9.0 \ Crystal Reports \ Samples \ En \ Code文件夹中找到示例 – Deb 2012-04-16 07:05:14

-1

打开与访问您的数据库文件,然后去选项,然后客户端。

之后,它会工作。