2016-08-13 16 views
0

WindowsフォームアプリケーションでC#を使用してCrystal ReportsをMS Accessデータベースに接続したいとします。WindowsフォームアプリケーションでC#を使用してCrystal ReportをMS Accessデータベースに接続する方法

Crystal ReportsとMS Accessデータベースを接続するのに以下のコードを使用していますが、動作していません。

誰でもこのタスクを達成するのに役立つことができますか?私はあなたにとても感謝しています。あなたが取る必要がある

+0

私にはうまく見えます。技術的には、データベース名は必要ありません。どのようにしてデータベースを保護しましたか?ちょうどパスワードを使用して?またはmdwファイルを使用していますか?通常、アクセス権を使用して.rptファイルを設計するときは、そこにパスワードの詳細を入力する必要があります。この作業は大丈夫でしたか?上記の失敗はどんな行ですか?私はあなたにもっと多くの情報を必要とします。 –

+0

_Thanks Jonathan Willcockの返信用、_ 実際には、私はパスワードだけで保護しているMS Accessデータベースを使って小さなアプリケーションに取り組んでいます。問題は、私のコードをデバッグし、foreachループに入力せず、crReport.Database.Tablesオブジェクトが私の直接のウィンドウでこれを返すときです。 「crReport.Database.Tablesが {} CrystalDecisions.CrystalReports.Engine.Tables 数:0 現在: 'crReport.Database.Tables.Currentは' タイプの例外をスローした 'System.ArgumentExceptionの' – skh

+0

その後、それはあなたのように聞こえますあなたのC#コードではなく、レポートファイルが間違っています。レポートをデザインするときに、必要なデータを正常にプレビューしましたか? –

答えて

0

ステップ:

  1. あなた.RPTファイルを作成します。このために私は常に私のすべてのレポートを保管する別のライブラリを使用していますが、これは必須ではありません。あなたは主なソリューションでそれを行うことができます。いずれにしても、CrustalDecisions.CrystalReports.Engineへの参照があることを確認する必要があります。 CrustalDecisions.ReportSource; CrustalDecisions.Shared;およびCrustalDecisions.Windows.Forms。
  2. プロジェクトを右クリックし、[追加]、[新規アイテム]、[Visual C#]の順にクリスタルレポートが表示されます。レポート名を選択し、[追加]、[デフォルトのレポートウィザードと標準レイアウトの使用]をクリックします。 [新規接続の作成]を展開し、[アクセス/ Excel]をクリックすると、データベースファイルの場所を入力するよう求められます。パスワードで保護されているので、今すぐSecure Logonをクリックし、パスワードを(データベースパスワードとして)入力する必要があります。 [完了]をクリックすると、データベースファイルが表示され、その下にテーブルのリストなどが表示されます。レポートの基礎となるものを選択し、矢印を使用して選択したテーブルに移動します(右側)。 [次へ]をクリックし、同じ方法で必要なフィールドを選択します。 Finishをクリックします。
  3. CrystalReportViewerコントロールを、レポートの「ホスト」フォームとなるフォームに追加します。
  4. ホストフォームのコンストラクタと同じC#コードを使用して、データベースに接続します。これは、同じテーブルを持つ限り、異なるパスワードを持つ異なるデータベースである可能性があります。あなたが働いて基礎を持っているならば、あなたはWYSIWYGデザイナを使用して、レポートのデザインで遊んで開始することができます

    //Assign data source details to the report viewer 
    if (this.crystalReportViewer1.LogOnInfo != null) 
    { 
        TableLogOnInfos tlInfo = this.crystalReportViewer1.LogOnInfo; 
        foreach (TableLogOnInfo tbloginfo in tlInfo) 
        { 
         tbloginfo.ConnectionInfo = tConnInfo; 
        } 
    } 
    crystalReportViewer1.ReportSource = crReport; 
    

  • は最後に次のコードを追加します!

  • 関連する問題