10) 在Page_Load方法中使用下面的子函数:
VB.Net代码: 
  Sub BindReport()
    Dim myConnection As New SqlClient.SqlConnection() 
    myConnection.ConnectionString= "server= (local)\NetSDK;database=pubs;Trusted_Connection=yes"
    Dim MyCommand As New SqlClient.SqlCommand()
    MyCommand.Connection = myConnection
    MyCommand.CommandText = "Select * from Stores"
    MyCommand.CommandType = CommandType.Text
    Dim MyDA As New SqlClient.SqlDataAdapter()
    MyDA.SelectCommand = MyCommand
    Dim myDS As New Dataset1()
    '这就是我们在设计模式上使用的DataSet 
    MyDA.Fill(myDS, "Stores") 
    '你不得不使用与你前面DataSet相同名字。
    Dim oRpt As New CrystalReport1()
    ' 水晶报表绑定
    oRpt.SetDataSource(myDS)
    ' 设定水晶报表的ReportSource
    CrystalReportViewer1.ReportSource = oRpt
  End Sub C#代码: 
private void BindReport()
{
  string strProvider = "Server=(local);DataBase=pubs;UID=sa;PWD=";
  CrystalReport1 oCR = new CrystalReport1();
  Dataset1 ds = new Dataset1();
  SqlConnection MyConn = new SqlConnection(strProvider);
  MyConn.Open();
  string strSel = "Select * from Stores";
  SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,MyConn);
  MyAdapter.Fill(ds,"stores");
  oCR.SetDataSource(ds);
  this.CrystalReportViewer1.ReportSource = oCR;

解决方案 »

  1.   

    先建一个.rpt,然后把字段拉到报表里,(你喜欢简单就用OLE DB算了),然后在显示页面里写:
    string strProvider = "Server=(local);DataBase=pubs;UID=sa;PWD=";
      CrystalReport1 oCR = new CrystalReport1();
      Dataset1 ds = new Dataset1();
      SqlConnection MyConn = new SqlConnection(strProvider);
      MyConn.Open();
      string strSel = "select data1,data2,data3 from table1";
      SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,MyConn);
      MyAdapter.Fill(ds,"table1");
      oCR.SetDataSource(ds);
      this.CrystalReportViewer1.ReportSource = oCR;