在c#中从数据表中加载数据到数据集

本文关键字:数据 加载 数据集 数据表 | 更新日期: 2023-09-27 18:18:03

我有一个名为"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 .有没有办法做到这一点。

在c#中从数据表中加载数据到数据集

解决这个问题的一种方法是将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();