从C#中的数据表加载数据到数据集

时间:2016-11-14 16:19:11

标签: c#

我有一个名为“dts_Material_Report”的数据集,用于生成报告。在该数据集中,我有一个名为“dt_report_Received_Materials”的tableAdapter。

以前我已使用以下代码

将数据加载到该表适配器
private void generate_report( string qry )
    {

        string query, qry1;
        query = qry;
        int pr_id = Form_Common_PCM.pr_id;            

        clz_Common_SqlConnection con = new clz_Common_SqlConnection();
        SqlDataAdapter sda = new SqlDataAdapter(query, con.ActiveCon());
        DataSet dts = new DataSet();
        sda.Fill(dts, "dt_report_Received_Materials");            


        rdc.SetDataSource(dts);
        crystalReportViewer1.ReportSource = rdc;
        crystalReportViewer1.DisplayToolbar = true;
        crystalReportViewer1.Show();
    }

但是目前我拥有在我的一个名为“dt_mat_cost”的数据表中生成报告所需的所有数据。

int Ref_ID_s_category;
            Ref_ID_s_category = Convert.ToInt16(cbo_sub_category .SelectedValue );
            int pro_id = Form_Common_PCM.pr_id;
            clz_Received_Material_Summary rms = new clz_Received_Material_Summary();
            DataTable dt_mat_cost = rms.Summary_Material_Cost_Filter_By_Project_By_Sub_Category(Ref_ID_s_category);

现在我想将这些数据从“dt_mat_cost”加载到我的tableAdapter“dt_report_Received_Materials”。有没有办法做到这一点。

先谢谢。

1 个答案:

答案 0 :(得分:0)

解决此问题的一种方法是将DataTable放入DataSet,然后运行晶体代码,如下所示。您可以将ReportSource设置为数据表,但如果可以的话,我不记得我的头脑。

DataTable dt_matCost = rms.Summary_Material_Cost_Filter_By_Project_By_Sub_Category(Ref_ID_s_category);

DataSet dts = new DataSet();
dts.Tables.Add(dt_matCost);
//ds.Tables[0].TableName = "Whatever CR thinks it is"; // may need to set for CR

rdc.SetDataSource(dts);
crystalReportViewer1.ReportSource = rdc;
crystalReportViewer1.DisplayToolbar = true;
crystalReportViewer1.Show();