Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';使用OLEDB提供程序通过C#找不到postgres数据库_C#_Database_Postgresql_Oledb_Provider - Fatal编程技术网

Can';使用OLEDB提供程序通过C#找不到postgres数据库

Can';使用OLEDB提供程序通过C#找不到postgres数据库,c#,database,postgresql,oledb,provider,C#,Database,Postgresql,Oledb,Provider,我正在尝试访问在我们设置的linux服务器上设置的一些postgresSQL数据库,之前我们使用access和SQL server 2008,并与C#Ole Db连接良好,但我们正在尝试看看是否可以迁移到postgres,因为这样会更方便。我可以在linux机器上访问这些数据库,使用ODBC数据源管理器成功地测试了数据库的连接,PG Admin III显示所有数据库都很好,并且psql也可以访问这些数据库。但是,当我尝试通过Visual Studio使用Ole DB进行连接时,连接字符串如下:

我正在尝试访问在我们设置的linux服务器上设置的一些postgresSQL数据库,之前我们使用access和SQL server 2008,并与C#Ole Db连接良好,但我们正在尝试看看是否可以迁移到postgres,因为这样会更方便。我可以在linux机器上访问这些数据库,使用ODBC数据源管理器成功地测试了数据库的连接,PG Admin III显示所有数据库都很好,并且psql也可以访问这些数据库。但是,当我尝试通过Visual Studio使用Ole DB进行连接时,连接字符串如下:

“Provider=postgresql OLE DB Provider;Server=192.168.0.64:5432;location=FRANK;User ID=ourusername;password=ourpassword;timeout=1000;”

我从connectionstrings.com上得到这个,他们以前从未让我失望过。我尝试了多种变体,搜索了其他人在联机连接字符串时遇到的问题,并相应地进行了更改,但仍然出现相同的错误:

致命:数据库“FRANK”不存在


我不知道为什么我会犯这个错误,很明显就是这样。与其他连接方法相比,唯一不同的是提供程序或它是通过VisualStudio完成的。我得到的提供商是从PGfoundry下载的,这是我唯一能想到的问题。有什么建议吗?

您尝试过使用Npgsql吗


另外,不要忘记配置postgresql server文件pg_hba.conf和postgresql.conf以接受您的连接类型。

检查您的数据库是否被称为真正的“FRANK”(全大写)!更多信息为什么这在这里很重要-。@MilenA.Radev感谢您的回复,是的,它确实都是大写的。我再次运行代码,将位置更改为“frank”,以防万一。我想我还要提到的是,它在该服务器上找不到其他数据库,包括默认的postgres数据库,所以问题不仅仅在于该数据库。Npgsql是ADO.Net提供程序,而不是Oledb。商业Oledb提供商可在此处找到[(Intellisoft LLC的产品)
..
using Npgsql;
..

NpgsqlConnection con = new NpgsqlConnection("Server=192.168.0.64:5432;User ID=ourusername;password=ourpassword;Database=FRANK;timeout=1000");