5

PostgreSql データベースに接続するために、C# .NET 4.0 アプリケーションで Npgsql 2.0.11.94 を使用しています。彼らの Web サイトの例に従って接続文字列を作成しました。NpgsqlConnection オブジェクトで接続を呼び出すと、次の例外がスローされます。

A first chance exception of type 'Npgsql.NpgsqlException' occurred in Npgsql.dll

Additional information: ERROR: 22023: 3 is outside the valid range for parameter "extra_float_digits" (-15 .. 2)

例外がスローされた後、コードは正しく実行されます。つまり、データベースへの接続は確立され、クエリは正しいデータを返します。なぜこの例外がスローされているのか誰にもわかりますか? データベースに接続するための私のコードは次のとおりです。

string strConnection = "Server=192.168.253.20;Port=5432;User Id=alex;Password=asdf;Database=mydatabase;";
NpgsqlConnection conn = null;
try
{
    conn = new NpgsqlConnection(strConnection);
    conn.Open();
}
catch (Exception e)
{
}

どんな助けでも大歓迎です。

ありがとう、アレックス

4

3 に答える 3

6

接続確立時の初期設定のバグです。

最初に開かれるすべての接続で実行されるいくつかの異なるコマンドがあります (ただし、プールされた接続が再利用される場合は繰り返し実行されません)。 PostgreSQL の異なるバージョン間。

明らかに、計画どおりには進んでいません。

ソースをざっと見てみると、呼び出しはラップされており、そのような例外を食べる必要があるようですが、おそらくそれは最後のリリースの後です。もしそうなら、ソースからビルドすることで問題が解決するかもしれません。

または、バージョンを戻すか、次のリリースまで try-catch でラップすることもできます。

于 2012-09-04T23:56:42.860 に答える
5

Jon Hannaは、なぜこのようなtry-catchがあるのか​​、なぜ例外がスローされるのかを正しく説明しています。問題は、VS.netがスローされた例外を表示することです。これは、Npgsqlが実行しているようなtry-catch例外処理によって食べられたものであってもです。

vs.netはそのように正しく動作し、処理されているにもかかわらずスローされた例外がまだあり、この特定のケースでは単に無視されていることを示していると思います。

vs.netを使用してコードをデバッグしている場合にのみ、この例外が表示されることを確認できます。また、お気づきのとおり、コードは何も問題が発生していないかのように機能し続けます。だから、あなたはそれについて心配する必要はありません。

お役に立てば幸いです。

于 2012-09-21T19:53:29.693 に答える
0

Visual Studio プロジェクトを管理しているときにこの例外が発生したと思われるので、MainMenu ->Debug -> Exceptions の Common Language Runtime Exceptions リストと Managed Debugging Assistans リストの両方のチェックを外してみてください。幸運を!:))) パオロ

于 2013-01-23T11:58:35.107 に答える