まずは、DBに接続し、
表示するだけの、基本的なサンプルから始めます。
まずは、クリスタルレポートを、プロジェクトに追加してください。
追加方法は、前回紹介した方法です。
次に、MYSQLから表示するデータを取得します。
MYSQLに接続するためには、以前紹介した方法と同じです。
注意点としては、MYSQLのコネクタのバージョンが、
6.5.*以上だと、パスワード関連のエラーで接続できなかったので、
Authentication with old password no longer supported, use 4.1 style passwords
6.5.*のバージョンをつかいます。
フォームに、ボタンとCrystalReportViewerを貼り付けます。
また、プロジェクトの「App.config」に、赤い字の箇所を追加してください
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
ここまでできたら、
ソースの①まで、デバッグ実行して、「KEN_ALL.xsd」ファイルを作成し、
プロジェクトに追加しておきます。
CrystalReport1.rptを選択し、
データベースエキスパートを選択します。
すると、先に、作っていた「KEN_ALL」(KEN_ALL.xsd)があるので右側に移動させて選択して「OK」を押します。
後は、簡単で、図のようにドラッグドロップすればOK
ソースを最後まで走らせます。
Imports MySql.Data Imports MySql.Data.MySqlClient Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 'MYSQLからデータを読み出す Dim cnstr As String cnstr = "Database=test;Data Source=centos5vm;User Id=vbuser;Password=sa" Dim con As New MySql.Data.MySqlClient.MySqlConnection(cnstr) Try con.Open() Dim sql As String = "select * from KEN_ALL" Dim Cmd As New MySqlCommand(sql, con) Dim myAd As New MySqlDataAdapter Dim dt As New DataTable("KEN_ALL") Dim dts As New DataSet myAd.SelectCommand = Cmd 'データテーブルに取得 myAd.Fill(dt) 'xsdファイルを保存します。 'DB ---→ xsd ----→ クリスタルレポート 'というデータの流れになります 'dt.WriteXmlSchema("KEN_ALL.xsd") '①保存したKEN_ALL.xsdはプロジェクトに追加しておきます。 'プロジェクトに追加したクリスタルレポートオブジェクトを参照 Dim rpt As New CrystalReport1 'デーソースにデータセットを rpt.SetDataSource(dt) 'ビュワーにレポートをセット CrystalReportViewer1.ReportSource = rpt Catch ex As Exception Debug.Print(ex.Message.ToString) MessageBox.Show(ex.Message.ToString) End Try con.Clone() con.Dispose() MessageBox.Show("終了") End Sub End Class |