繁体   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