Search code examples
c#crystal-reports

The data source object is invalid


I got this error! When open crystal report upon follong code.

The data source object is invalid.

Code is here

Cursor = Cursors.WaitCursor;
            timer1.Enabled = true;
            CrystalReport2 rpt = new CrystalReport2();
            obj.connection();
            String accept = "SELECT S.Product as Products, COALESCE(Pur_Orders.Quantity, 0) as [Products purchased], COALESCE(Sale_Orders.Quantity, 0) as [Products Sold] From Inv_stock S LEFT JOIN (SELECT Item, SUM(Quantity) AS Quantity FROM Pur_Orders Where Pur_Orders.Date='" + dateTimePicker1.Value.Date + "' GROUP BY Item) AS Pur_Orders ON S.Product = Pur_Orders.Item LEFT JOIN (SELECT Item, SUM(Quantity) AS Quantity FROM Sale_Orders Where Sale_Orders.Date='" + dateTimePicker1.Value.Date + "' GROUP BY Item) AS Sale_Orders ON S.Product = Sale_Orders.Item";
            SqlCommand cmd = new SqlCommand(accept, obj.con);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            da.Fill(ds, "Inv_stock");
            da.Fill(ds, "Pur_Orders");
            da.Fill(ds, "Sale_Orders");
            rpt.SetDataSource(da);
            obj.con.Close();
            Inventory inv = new Inventory();
            inv.CrystalReportViewer.ReportSource = rpt;
            inv.Visible = true;

What is problem?????


Solution

  • You are setting the datasource of the report with DataAdapter:

    rpt.SetDataSource(da);

    Replace it with a dataset or a datatable like this:

    rpt.SetDataSource(ds); // a dataset

    rpt.SetDataSource(ds.Tables["TableName"]); // a datatable