3

ADO.NET を使用してデータベースからデータを取得する小さなプログラムを作成しています。問題は、接続を開いた後、コンソールに何も表示されないことです。接続前に何かを出力すると..すべて問題ありませんが、後はきれいな黒です。

私がやっていることは、テーブルを読み取ってクエリ出力を出力することです。大したことはありませんが、紛失したアイテムが見つからないようです..

どうもありがとう

回答: コンソールをしばらく開いたままにしていたら、接続がタイムアウトしました。C# は、タイムアウトが発生するまで conn.Open() の処理で引き続きビジー状態でした。

public void ReadVoorraad() {

        SqlConnection conn = new SqlConnection("Data Source=(local);Initial Catalog=postorder2;User ID=root;Password=****");
        SqlDataReader rdr = null;

        try {

            conn.Open();
            SqlCommand cmd = new SqlCommand("SELECT * from voorraad", conn);

            rdr = cmd.ExecuteReader();

            while (rdr.Read()) {
                Console.WriteLine(rdr[0]);
            }
            Console.WriteLine("------ End of stream -------");
        } finally {
            if (rdr != null) { rdr.Close(); }
            if (conn != null) { conn.Close(); }
        }

    }

}
4

1 に答える 1

0

私の推測では、いくつかの例外があったということです。これをコードに追加して、ReadVoorraadメソッドからより多くの診断情報を取得してみてください。

SqlConnection conn = null;
SqlDataReader rdr = null;

try {
    conn = new SqlConnection(...);

    ...
} catch (Exception e) {
    Console.WriteLine("Error: " + e.Message);
    throw;
} finally {
    if (rdr != null) { rdr.Close(); }
    if (conn != null) { conn.Close(); }
}
于 2013-03-16T21:35:55.637 に答える