首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接时Npgsql异常

连接时Npgsql异常
EN

Stack Overflow用户
提问于 2012-09-04 22:43:33
回答 3查看 20.1K关注 0票数 5

我在C# .NET 4.0应用程序中使用Npgsql2.0.11.94连接到PostgreSql数据库。我根据他们网站上的例子形成了连接字符串,当我用NpgsqlConnection对象调用connect时,会抛出这个异常:

代码语言:javascript
复制
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)

抛出异常后,代码将正确执行。也就是说,与数据库的连接确实建立了,查询返回了正确的数据。有人知道它为什么抛出这个异常吗?下面是我连接到数据库的代码:

代码语言:javascript
复制
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)
{
}

任何帮助都将不胜感激。

谢谢,亚历克斯

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-05 07:56:43

这是一个在建立连接时初始设置的错误。

在第一次打开的每个连接上都会执行几个不同的命令(但在重用池连接时不会重复执行),这个命令试图处理不同版本的PostgreSQL之间浮点数格式所允许的不同精度程度。

显然,它并没有像计划的那样进行。

快速看一下源代码,似乎调用是包装的,应该会处理任何这样的异常,但可能是在最后一个版本之后。如果是这样,那么从源代码构建可能会解决您的问题。

或者您可以返回一个版本,或者只使用try-catch包装到下一个版本。

票数 6
EN

Stack Overflow用户

发布于 2012-09-22 03:53:30

Jon Hanna正确地解释了为什么我们有这样一个try-catch,以及为什么抛出异常。问题是VS.net会显示任何抛出的异常,甚至是那些被try-catch异常处理程序吞噬的异常,就像Npgsql正在做的那样。

我认为vs.net的行为是正确的,它向您表明,尽管异常正在被处理,但仍有异常被抛出,并且在这个特定的情况下,只是被忽略。

您可以检查此异常是否仅在使用vs.net调试代码时出现。此外,正如您还注意到的,您的代码继续工作,就好像没有发生任何错误一样。所以,你不需要担心这一点。

我希望它能帮上忙。

票数 5
EN

Stack Overflow用户

发布于 2013-01-23 19:58:35

我想您在管理Visual Studio项目时遇到了此异常,因此请尝试简单地取消选中MainMenu ->Debug -> Exceptions公共语言运行时异常和托管调试助手列表。祝你好运!:) Paolo

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12265932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档