RDLC проблема с множественными наборами данных проекта Winform в C # - PullRequest
0 голосов
/ 28 ноября 2018

Я создаю отчет в средстве просмотра отчетов.С одним набором данных он отлично работает, но мне нужно включить в этот же отчет несколько наборов данных.Можете ли вы сказать мне, что я делаю не так, пожалуйста (с некоторым кодом, если это возможно).Я нашел целую кучу информации по этому вопросу, но не все на одном языке программирования.Я использую C #.В .RDLC у меня есть один созданный источник данных и 2 набора данных (DataSet и DataSet1).Вот мой текущий код:

private void LoadReport()
    {
        try
        {
            MySqlConnection con = new MySqlConnection(conSettings.ToString());
            MySqlCommand cmd = new MySqlCommand("packing_slips", con);
            MySqlCommand cmd1 = new MySqlCommand("client_info", con);

            con.Open();
            cmd.Parameters.Add("@project", MySqlDbType.VarChar, 20).Value = project_id_box.Text;
            cmd.CommandType = CommandType.StoredProcedure;

            cmd1.Parameters.Add("@project", MySqlDbType.VarChar, 20).Value = project_id_box.Text;
            cmd1.CommandType = CommandType.StoredProcedure;

            MySqlDataAdapter adp = new MySqlDataAdapter(cmd);
            MySqlDataAdapter adp1 = new MySqlDataAdapter(cmd1);

            DataSet ds = new DataSet();
            DataSet ds1 = new DataSet();
            adp.Fill(ds);
            adp1.Fill(ds1);

            reportViewer1.Reset();
            this.reportViewer1.LocalReport.DataSources.Clear();

            ReportDataSource reportDataSource = new ReportDataSource();
            reportDataSource.Value = ds.Tables[0];
            reportDataSource.Name = "DataSet";

            ReportDataSource reportDataSource1 = new ReportDataSource();
            reportDataSource1.Value = ds1.Tables[0];
            reportDataSource1.Name = "DataSet1";

            this.reportViewer1.LocalReport.DataSources.Add(reportDataSource);
            this.reportViewer1.LocalReport.DataSources.Add(reportDataSource1);
            this.reportViewer1.LocalReport.ReportPath = "project_report.rdlc";

            this.packing_slipsTableAdapter.Fill(this.shopmanagerDataSet.packing_slips);
            this.projectsTableAdapter.Fill(this.shopmanagerDataSet.projects);

            this.reportViewer1.RefreshReport();

            con.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

Я не получаю никаких ошибок компиляции при компиляции, но отчет пуст.Я получаю данные из базы данных MySQL с помощью хранимых процедур.При отладке я вижу, что ds и ds1 заполняются правильно.Спасибо.

1 Ответ

0 голосов
/ 28 ноября 2018

Я нашел ответ.При добавлении нескольких наборов данных в RDLC необходимо указать, из какого набора данных поступает информация, в свойствах текстового поля.EG:

= Первый (Fields! Project_number.Value, "DataSet")

Это исправило это для меня.Приведенный выше код подходит для всех, у кого есть эта проблема.

...