未分類

ReportViewer を使用してデータベースからレポートを作成する

準備

1. SQL Server サンプルデータベースを準備します。データベースは Pubs を使用します。
2. プロジェクトにデータセット (DataSet1.xsd) を追加します。テーブルは authors を使用します。
3. プロジェクトにレポート (Report1.rdlc) を追加します。 - ツールボックスからテーブルを追加し、テーブルにフィールドを追加します。

デザイン

1. フォーム (Form1) にボタン (button1) を配置します。
2. フォーム (Form1) に ReportViewer (reportViewer1) を配置します。

サンプルコード (C#)

// 名前空間の追加
using System.Data.SqlClient;
using System.Drawing.Printing;
using Microsoft.Reporting.WinForms;

// コード
private void button1_Click(object sender, EventArgs e)
{
  // データベース接続、authors テーブルからデータセットを作成
  string sConn = @"Persist Security Info=False;Integrated Security=SSPI;database=Pubs;server=.\sqlexpress";
  SqlConnection sqlConn = new SqlConnection(sConn);
  SqlCommand sqlCmd = new SqlCommand();
  sqlConn.Open();
  sqlCmd.Connection = sqlConn;
  sqlCmd.CommandText = "SELECT * FROM authors";
  SqlDataAdapter Adp = new SqlDataAdapter();
  DataSet ds = new DataSet("DataSet1");
  Adp.SelectCommand = sqlCmd;
  Adp.Fill(ds, "authors");
  
  // ReportViewer の初期設定
  reportViewer1.Reset();
  reportViewer1.ProcessingMode = ProcessingMode.Local;
  reportViewer1.LocalReport.ReportPath = Environment.CurrentDirectory + @"\Report1.rdlc";
  
  // ReportViewer 用データセットの作成
  ReportDataSource RepDS = new ReportDataSource();
  RepDS.Name = "DataSet1";
  RepDS.Value = ds.Tables[0];
  
  // ReportViewer にデータを表示
  reportViewer1.LocalReport.DataSources.Add(RepDS);
  reportViewer1.RefreshReport();
}

解説

データベースから通常通りデータセットを作成し、このデータセットをレポート用のデータセットに設定することにより、レポートにデータを表示できます。 尚、C++/CLI はデータセットが作成できず、同様のコードを記述することができないため、作成していません。

結果

動作確認環境

Visual Studio 2015 Professional (C# 6.0)

-未分類