2014-03-25 70 views
0

我是Crystal Reports的新手将数据源绑定到Crystal Reports

Crystal Viewer首先显示数据表而不是给出数据源,并且每次都需要刷新Crystal Viewer。

private void crystalReportViewer1_Load(object sender, EventArgs e) 
{ 
    string str = ConfigurationManager.ConnectionStrings["ConnData"].ConnectionString.ToString(); 
    SqlConnection con = new SqlConnection(str); 
    string cellno = LoginUser.CellNo; 
    SqlCommand cmd = new SqlCommand("SP_Get_CustomerByCellNo", con); 

    cmd.Parameters.AddWithValue("@Cell", cellno); 

    SqlDataAdapter da = new SqlDataAdapter(cmd); 

    DataTable dt = new DataTable(); 
    da.Fill(dt); 

    int i = dt.Rows.Count; 

    ReportDocument rd = new ReportDocument(); 
    ConnectionInfo info = new ConnectionInfo(); 
    info.DatabaseName = "BillingAndAccounts"; 
    info.UserID = "sa"; 
    info.Password = "sa123"; 
    rd.VerifyDatabase(); 

    rd.Load(@"C:\Users\Abhinavu\Documents\Login\Login\OrderWindow.rpt"); 

    rd.SetDataSource(dt); 
    crystalReportViewer1.ReportSource = rd; 
} 
+0

我有一些问题,你已了解正在尝试什么去做。从代码中为报告设置连接信息以使用其上的查询,并尝试将数据源传递给报告。您使用什么类型的数据源来开发报告,OLEDB,ADO.net,...? – Raphael

+0

正在使用连接信息查询来设置从数据库连接到Crystal Viewer.Yes我想通过数据源报告...并且正在使用ADO .net .... – user3432576

+0

请解决问题.... – user3432576

回答

1

你好,如果你想要一个datase传递给您的报告中,您必须使用一个类型化的DataSet和使用,在您的报告。

从我在这段代码中看到的内容可以想象,您基于OLEDB和ADO.NET连接创建了一个基于数据集的报表。

ConnectionInfo info = new ConnectionInfo(); 
info.DatabaseName = "BillingAndAccounts"; 
info.UserID = "sa"; 
info.Password = "sa123"; 
rd.VerifyDatabase(); 

在这里,你有2个链接,会告诉你如何使用ADO.NET数据集的数据源创建报表

Crystal Report with DataSet and DataTable using C#

Creating Crystal Reports using C# with Datasets