我是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 :(得分:1)
如果您想将数据传递到报表,则必须使用类型化数据集并在报表中使用该数据集。
从我在这段代码中看到的情况,我可以想象你是基于数据集上的OLEDB和ADO.NET连接创建的。
ConnectionInfo info = new ConnectionInfo();
info.DatabaseName = "BillingAndAccounts";
info.UserID = "sa";
info.Password = "sa123";
rd.VerifyDatabase();
这里有2个链接,将向您展示如何使用ADO.NET Datasets数据源创建报告