簡體   English   中英

連接時出現Npgsql異常

[英]Npgsql exception when connecting

我在C#.NET 4.0應用程序中使用Npgsql 2.0.11.94連接到PostgreSql數據庫。 我已經根據他們網站上的示例形成了連接字符串,當我使用NpgsqlConnection對象調用connect時,會拋出此異常:

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)
{
}

任何幫助將非常感激。

謝謝,亞歷克斯

建立連接時進行初始設置是一個錯誤。

在首次打開的每個連接上都會執行一些不同的命令(但在重新使用池連接時不會重復執行),並且此命令試圖處理浮點數格式允許的不同程度的精度。在不同版本的PostgreSQL之間。

顯然,這並沒有按計划進行。

快速查看源代碼,似乎該調用已被包裝並且應該占用任何此類異常,但這也許是在最后一個發行版之后。 如果是這樣,那么從源代碼構建可能會解決您的問題。

或者,您可以返回一個版本,或僅使用try-catch進行包裝,直到下一個版本。

喬恩·漢納(Jon Hanna)正確地解釋了為什么會有這樣的try-catch以及為什么會引發異常。 問題是VS.net會向您顯示拋出的任何異常,即使是像Npgsql這樣的try-catch異常處理所吞噬的異常。

我認為vs.net的行為正確地向您顯示,盡管正在處理異常,但仍會引發異常,在這種情況下,只需將其忽略即可。

您可以檢查此異常僅在使用vs.net調試代碼時出現。 同樣,正如您還注意到的那樣,您的代碼將繼續工作,好像沒有發生任何錯誤。 因此,您不必為此擔心。

希望對您有所幫助。

我想您在管理Visual Studio項目時遇到了此異常,因此請嘗試簡單地在MainMenu-> Debug-> Exceptions中取消選中“ Common Language Runtime異常”和“ Managed Debugging Assistans”列表。 祝好運! :)))保羅

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM