C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.59187 の関連記事表示

<< 0 >>
■59187  データベース取得で例外発生
□投稿者/ あるしす -(2011/05/18(Wed) 14:29:53)

    分類:[C#] 

    はじめまして!C#の初心者です。

    C#でデータベースの取得をしようとした所、訳の分からない例外が発生して困っています。
    どなたか解かる方、解決方法を教えてください。

    開発環境は、WindowsXP、Visual studio2008(SP1)です。
    発生している例外は TypeInitializationException で、例外ヘルパの説明は
    'System.Transactions.Diagnostics.DiagnosticTrace' のタイプ初期化子が例外をスローしました。
    と表示されます。

    発生箇所は、以下に記述するソースのmyDataAdapter.Fill()の部分です。
    但し、myDataAdapter.Fill()にブレークポイントを設定し、一旦ブレークした後に続行すると例外は発生しません。


    ■ソース
    using System;
    using System.Data;
    using System.Data.OleDb;
    using System.Xml.Serialization;

    public class MainClass
    {
      public static void Main ()
      {
        string strAccessConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=RoraData.mdb";
        string strAccessSelect = "SELECT * FROM RoraType";
        DataSet myDataSet = new DataSet();

        OleDbConnection myAccessConn = null;
        try
        {
          myAccessConn = new System.Data.OleDb.OleDbConnection(strAccessConn);
        }
        catch(Exception ex)
        {
          Console.WriteLine("Error: Failed to create a database connection. \n{0}", ex.Message);
          return;
        }

        try
        {
          OleDbCommand myAccessCommand = new System.Data.OleDb.OleDbCommand(strAccessSelect, myAccessConn);
          OleDbDataAdapter myDataAdapter = new System.Data.OleDb.OleDbDataAdapter(myAccessCommand);
          myDataAdapter.Fill(myDataSet,"RoraType");
        }
        catch (Exception ex)
        {
          Console.WriteLine("Error: Failed to retrieve the required data from the DataBase.\n{0}", ex.Message);
          return;
        }

    //    ★★ 以下省略 ★★
      }
    }

    以上、よろしくお願いします。
親記事 /過去ログ99より / 関連記事表示
削除チェック/

■59189  Re[1]: データベース取得で例外発生
□投稿者/ ツマツサツδ・email -(2011/05/18(Wed) 14:57:48)
    http://msdn.microsoft.com/ja-jp/library/aa288452%28v=vs.71%29.aspx
    ここを参考に作成したのだと思います。

    >但し、myDataAdapter.Fill()にブレークポイントを設定し、一旦ブレークした後に続行すると例外は発生しません。
    →ウォッチをみて、myDataSetにレコードは取得できてますか?

    ぱっと見て、怪しいのは
    >string strAccessConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=RoraData.mdb"
    ここですね。Data Sourceのところ。
記事No.59187 のレス /過去ログ99より / 関連記事表示
削除チェック/

■59212  Re[2]: データベース取得で例外発生
□投稿者/ あるしす -(2011/05/19(Thu) 11:48:09)
    No59189 (ツマツサツδ・email さん) に返信

    ツマツサツδ・email さん。ご回答ありがとうございます。

    > http://msdn.microsoft.com/ja-jp/library/aa288452%28v=vs.71%29.aspx
    > ここを参考に作成したのだと思います。

    はい。そうです。

    > >但し、myDataAdapter.Fill()にブレークポイントを設定し、一旦ブレークした後に続行すると例外は発生しません。
    > →ウォッチをみて、myDataSetにレコードは取得できてますか?

    例外が発生した時にはmyDataSetにはレコード取得が出来ていません。
    但し、myDataAdapter.Fill()で一旦ブレークした後に続行すると、例外発生せずにmyDataSetにレコード取得はできます。


    >
    > ぱっと見て、怪しいのは
    > >string strAccessConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=RoraData.mdb"
    > ここですね。Data Sourceのところ。

    Data Sourceの指定を絶対パスで指定して試しましたが、結果は同じでした。
    また、Data Source指定に誤りがあった場合には、OleDbException例外が発生するのではないでしょうか?
記事No.59187 のレス /過去ログ99より / 関連記事表示
削除チェック/

■59188  Re[1]: データベース取得で例外発生
□投稿者/ Gyackt -(2011/05/18(Wed) 14:57:39)
    No59187 (あるしす さん) に返信
    > はじめまして!C#の初心者です。
    >
    > C#でデータベースの取得をしようとした所、訳の分からない例外が発生して困っています。
    > どなたか解かる方、解決方法を教えてください。
    >
    > 開発環境は、WindowsXP、Visual studio2008(SP1)です。
    > 発生している例外は TypeInitializationException で、例外ヘルパの説明は
    > 'System.Transactions.Diagnostics.DiagnosticTrace' のタイプ初期化子が例外をスローしました。
    > と表示されます。
    >
    > 発生箇所は、以下に記述するソースのmyDataAdapter.Fill()の部分です。
    > 但し、myDataAdapter.Fill()にブレークポイントを設定し、一旦ブレークした後に続行すると例外は発生しません。
    >
    >
    > ■ソース
    > using System;
    > using System.Data;
    > using System.Data.OleDb;
    > using System.Xml.Serialization;
    >
    > public class MainClass
    > {
    >   public static void Main ()
    >   {
    >     string strAccessConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=RoraData.mdb";
    >     string strAccessSelect = "SELECT * FROM RoraType";
    >     DataSet myDataSet = new DataSet();
    >
    >     OleDbConnection myAccessConn = null;
    >     try
    >     {
    >       myAccessConn = new System.Data.OleDb.OleDbConnection(strAccessConn);
    >     }
    >     catch(Exception ex)
    >     {
    >       Console.WriteLine("Error: Failed to create a database connection. \n{0}", ex.Message);
    >       return;
    >     }
    >
    >     try
    >     {
    >       OleDbCommand myAccessCommand = new System.Data.OleDb.OleDbCommand(strAccessSelect, myAccessConn);
    >       OleDbDataAdapter myDataAdapter = new System.Data.OleDb.OleDbDataAdapter(myAccessCommand);
    >       myDataAdapter.Fill(myDataSet,"RoraType");
    >     }
    >     catch (Exception ex)
    >     {
    >       Console.WriteLine("Error: Failed to retrieve the required data from the DataBase.\n{0}", ex.Message);
    >       return;
    >     }
    >
    > //    ★★ 以下省略 ★★
    >   }
    > }
    >
    > 以上、よろしくお願いします。

    調査不足じゃないかな
    http://www.connectionstrings.com/access

    あと「データベースを取得」っておかしい
記事No.59187 のレス /過去ログ99より / 関連記事表示
削除チェック/

■59210  Re[2]: データベース取得で例外発生
□投稿者/ あるしす -(2011/05/19(Thu) 11:34:34)
    No59188 (Gyackt さん) に返信

    > 調査不足じゃないかな
    > http://www.connectionstrings.com/access

    Gyackt さん
    早々とご回答ありがとうございます。

    教えて頂いたサイトを参考にしてConnection Stringを様々試してみましたが、結果は変わりませんでした。
    また、Connection Stringに問題がある場合、myDataAdapter.Fill()で一旦ブレークさせると現象が発生しないのが理解できません。

    もし、ご指摘がConnection String以外であれば、もう少し具体的に教えて頂けないでしょうか?
    よろしくお願いします。
記事No.59187 のレス /過去ログ99より / 関連記事表示
削除チェック/

■59219  Re[1]: データベース取得で例外発生
□投稿者/ くり太郎 -(2011/05/19(Thu) 13:39:22)
>
    No59187 (あるしす さん) に返信
    > はじめまして!C#の初心者です。
    >
    > C#でデータベースの取得をしようとした所、訳の分からない例外が発生して困っています。
    > どなたか解かる方、解決方法を教えてください。
    >
    > 開発環境は、WindowsXP、Visual studio2008(SP1)です。
    > 発生している例外は TypeInitializationException で、例外ヘルパの説明は
    > 'System.Transactions.Diagnostics.DiagnosticTrace' のタイプ初期化子が例外をスローしました。
    > と表示されます。
    >
    > 発生箇所は、以下に記述するソースのmyDataAdapter.Fill()の部分です。
    > 但し、myDataAdapter.Fill()にブレークポイントを設定し、一旦ブレークした後に続行すると例外は発生しません。

    試しに

    myDataAdapter.Fill(myDataSet,"RoraType");

    のところなんですけど、データを受け取る側のオブジェクトのタイプを DataSet ではなく DataTable 系のものにしても同じ結果になりますか?
記事No.59187 のレス /過去ログ99より / 関連記事表示
削除チェック/

■59232  Re[2]: データベース取得で例外発生
□投稿者/ あるしす -(2011/05/19(Thu) 16:27:22)
    No59219 (くり太郎 さん) に返信

    くり太郎さん、ありがとうございます。

    > 試しに
    >
    > myDataAdapter.Fill(myDataSet,"RoraType");
    >
    > のところなんですけど、データを受け取る側のオブジェクトのタイプを DataSet ではなく DataTable 系のものにしても同じ結果になりますか?

    受け取るオブジェクトをDataTableで試してみましたが、同じ例外が発生しました。
    因みに、変更した箇所は
        try
        {
          OleDbCommand myAccessCommand = new System.Data.OleDb.OleDbCommand(strAccessSelect, myAccessConn);
          OleDbDataAdapter myDataAdapter = new System.Data.OleDb.OleDbDataAdapter(myAccessCommand);
    //      myDataAdapter.Fill(myDataSet,"RoraType");
          DataTable dbTbl = new DataTable();
          myDataAdpter.Fill(dbTbl);
        }
        catch (Exception ex)
        {
          Console.WriteLine("Error: Failed to retrieve the required data from the DataBase.\n{0}", ex.Message);
          return;
        }
    としました。

    それと、myDataAdpter.Fill()の箇所をmyAccessConn.Open()に変えて見ましたが、やはり結果は同じでした。
    データを受け取る側の問題では無い様な気がします。


記事No.59187 のレス /過去ログ99より / 関連記事表示
削除チェック/

■59234  Re[3]: データベース取得で例外発生
□投稿者/ todo -(2011/05/19(Thu) 16:50:05)
    >     catch (Exception ex)
    >     {
    >       Console.WriteLine("Error: Failed to retrieve the required data from the DataBase.\n{0}", ex.Message);
    >       return;
    >     }

    ex.StackTraceはどうなっていますか?
記事No.59187 のレス /過去ログ99より / 関連記事表示
削除チェック/

■59233  Re[1]: データベース取得で例外発生
□投稿者/ 魔界の仮面弁士 -(2011/05/19(Thu) 16:41:07)
記事No.59187 のレス /過去ログ99より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -