今天在做水晶报表时,遇到了一个问题,请高手帮忙解决:
在报表中需要显示的数据自来示例数据库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;
--=====================================================================
最后运行程序,单击命令按钮进行浏览的时候,总是出现数据库登录提示。即使输入正确的登录信息,也浏览不到报表数据。请高手们帮忙解决,在线等待。

解决方案 »

  1.   

    可以在水晶报表里预览一下,或者跟进去看看DataSet ds = new DataSet()中有没有数据!
    基本可以排除问题在那里了!
      

  2.   

    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]);//上面这行代码  改成obj.SetDataSource(ds);试试 再不行估计是你连接数据库字符串有问题?this.crystalReportViewer1.ReportSource = obj;
      

  3.   

    基本问题,google搜索 “水晶报表  登录”,一大把