今天在做水晶报表时,遇到了一个问题,请高手帮忙解决:
在报表中需要显示的数据自来示例数据库Northwind中的Custoemrs和Orders表。
(1)生成一个强类型化的数据集,在其中拖了上述的两个表进来。
(2)在报表设计器中选择数据来源的时候,从“ADO.NET数据集”中的两个表中选取所需的字段。
(3)在WinForm窗面的button命令按钮的单击事件处理器中,添加如下的代码:
SqlConnection cn = new SqlConnection("Data Source=.;Initial Catalog=Northwind;Integrated Security=SSPI");
SqlDataAdapter da = new SqlDataAdapter("SELECT Customers.CustomerID,CompanyName,OrderID,OrderDate FROM Customers,Orders WHERE Customers.CustomerID=Orders.CustomerID",cn);
DataSet ds = new DataSet();
da.Fill(ds);
CrystalReport1 obj = new CrystalReport1();
obj.SetDataSource(ds.Tables[0]);
this.crystalReportViewer1.ReportSource = obj;
--=====================================================================
最后运行程序,单击命令按钮进行浏览的时候,总是出现数据库登录提示。即使输入正确的登录信息,也浏览不到报表数据。请高手们帮忙解决,在线等待。
在报表中需要显示的数据自来示例数据库Northwind中的Custoemrs和Orders表。
(1)生成一个强类型化的数据集,在其中拖了上述的两个表进来。
(2)在报表设计器中选择数据来源的时候,从“ADO.NET数据集”中的两个表中选取所需的字段。
(3)在WinForm窗面的button命令按钮的单击事件处理器中,添加如下的代码:
SqlConnection cn = new SqlConnection("Data Source=.;Initial Catalog=Northwind;Integrated Security=SSPI");
SqlDataAdapter da = new SqlDataAdapter("SELECT Customers.CustomerID,CompanyName,OrderID,OrderDate FROM Customers,Orders WHERE Customers.CustomerID=Orders.CustomerID",cn);
DataSet ds = new DataSet();
da.Fill(ds);
CrystalReport1 obj = new CrystalReport1();
obj.SetDataSource(ds.Tables[0]);
this.crystalReportViewer1.ReportSource = obj;
--=====================================================================
最后运行程序,单击命令按钮进行浏览的时候,总是出现数据库登录提示。即使输入正确的登录信息,也浏览不到报表数据。请高手们帮忙解决,在线等待。
基本可以排除问题在那里了!
SqlDataAdapter da = new SqlDataAdapter("SELECT Customers.CustomerID,CompanyName,OrderID,OrderDate FROM Customers,Orders WHERE Customers.CustomerID=Orders.CustomerID",cn);
DataSet ds = new DataSet();
da.Fill(ds);
CrystalReport1 obj = new CrystalReport1();
obj.SetDataSource(ds.Tables[0]);//上面这行代码 改成obj.SetDataSource(ds);试试 再不行估计是你连接数据库字符串有问题?this.crystalReportViewer1.ReportSource = obj;