我尝试使用下面的代码,但它不起作用。
ReportDataSet我使用 SQL 查询将报告数据存储在 a中。后来我将此设置为ReportDataSet对象。DataSourceCrystalReport
private void btnGenReport_Click(object sender, EventArgs e)
    {
        CrystalReport1 objRpt = new CrystalReport1();
        string sql; //creating sql query
        sql = "SELECT invoice.InvoiceNo, invoice.Date, invoiceitems.Name, invoice.InvoiceTo, invoice.CusName, invoiceitems.Qty, invoiceitems.Rate, invoiceitems.Amount ";
        sql += "FROM (invoice INNER JOIN invoiceitems ON invoice.Date = invoiceitems.Date) ";
        sql += "WHERE (invoice.Date BETWEEN '" + DateTimePickerFrom.Value + "' AND '" + DateTimePickerTo.Value + "');";
        ReportDataSet ds = new ReportDataSet();
            string path = Application.StartupPath + "\\";
        string conStr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + path + "SMS_DB.mdf;Integrated Security=True;User Instance=True";
        SqlConnection con = new SqlConnection(conStr); // create connection
        try
        {
            con.Open();
            SqlDataAdapter da = new SqlDataAdapter(sql, con);
            da.Fill(ds, "InvoiceItemData");
            objRpt.SetDataSource(ds.Tables["InvoiceItemData"]);
            crystalReportViewer1.ReportSource = objRpt;
            con.close();
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error ! \n" + ex.ToString());
        }
    }