Задать вопрос

Как заполнить Microsoft Reports программно?

Добрый день! Такая проблема. Делаю отчёт в визуальном редакторе Мастера Отчётов, там надо указать строку подключения, чтобы не палить пароль, он удалён из строки подключения. После создания, естественно не соединяется. Пытаюсь взять все данные из базы и по новой указать отчёту но не получается, просто белая страница и неактивные элементы управления. Помогите с кодом?
string comm = "здесь мой запрос, удалил его т.к. длинный";
 MySqlConnection conn = new MySqlConnection("server=адрес сервера;User Id=юзер;password=пароль;Persist Security Info=True;database=имя бд");
            MySqlCommand comd = new MySqlCommand(comm, conn);
            DataTable print2DataSet2 = new DataTable();
            conn.Open();
            print2DataSet print2DataSet = new print2DataSet();
            MySqlDataAdapter cardsTableAdapter = new MySqlDataAdapter(comd);
            this.cardsTableAdapter.Fill(this.print2DataSet.cards, id_card_for_print);
            conn.Close();
            
           
            this.reportViewer1.Reset();

            this.reportViewer1.LocalReport.ReportPath = "Report1.rdlc";
           ReportDataSource rptSrc = new ReportDataSource("print2DataSet2", cardsTableAdapter);
            this.reportViewer1.LocalReport.DataSources.Add(rptSrc);
        
            this.reportViewer1.RefreshReport();

В визуальном режиме установленно всё вот так
c0148cafca4442749761d628ca9370ee.png
  • Вопрос задан
  • 2766 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 2
KMaxI
@KMaxI
Руководитель группы программистов
Нужно отдельно создать набор данных и передавать его туда
Ответ написан
Комментировать
denissov
@denissov Автор вопроса
Да кстати, забыл ответ написать после того как решил задачу:
DataTable printDataSet1 = new DataTable("cards");
print2DataSet = new print2DataSet();
MySqlDataAdapter cardsTableAdapter = new MySqlDataAdapter(comd);
cardsTableAdapter.Fill(printDataSet1);
cardsBindingSource.DataSource = printDataSet1;
ReportDataSource rptSrc = new ReportDataSource("print2DataSet", cardsBindingSource);
reportViewer1.LocalReport.DataSources.Add(rptSrc);
reportViewer1.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout);
reportViewer1.ZoomMode = Microsoft.Reporting.WinForms.ZoomMode.Percent;
reportViewer1.ZoomPercent = 100;
reportViewer1.RefreshReport();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы