【发布时间】:2020-04-13 15:34:33
【问题描述】:
我有一个 C# Windows 窗体应用程序,.NET 4.5.2。
我正在尝试连接到本地主机中的 postgres 数据库。我所做的是定义以下连接字符串:
connectionString = "Driver={PostgreSQL};Server=127.0.0.1;Port=5432;Database=Project;Uid=postgres;Pwd=password;"
然后,我尝试使用以下函数查询数据库并在 DataTable 中获取结果:
//Makes a query to DB, returns result as DataTable
public DataTable MakeQuery(string query)
{
//Create connection to DataBase
ODBCConnection connection = new OdbcConnection(connectionString);
//Open connection
connection.Open(); //HERE I GET ERROR
//Create OdbcCommand using provided query
OdbcCommand command = new OdbcCommand(query);
//Assign connection to OdbcCommand
command.Connection = connection;
//DataTable with query result
DataTable result = new DataTable();
//Adapter to fill DataTable with query result
OdbcDataAdapter adapter = new OdbcDataAdapter(command);
//Make query and fill DataTable with result
adapter.Fill(result);
//Closing connection
connection.Close();
//Returning result
return result;
} //MakeQuery
我在尝试打开连接时遇到的错误:
"ERROR [IM002] [Microsoft][ODBC controllers administrator] Data origin name not found and no default controller specified"
(错误信息是从西班牙语翻译过来的,所以可能不完全一样)
所以看起来连接字符串不起作用,但我很确定它的格式正确。我从这个链接复制了它:https://www.connectionstrings.com/postgresql-odbc-driver-psqlodbc/
我确定 IP 和端口是正确的。我也确定我正确指定了数据库名称、用户名和密码。 .NET 中的 PostgreSQL 驱动程序有问题吗?我的代码有问题吗?
【问题讨论】:
标签: c# .net postgresql odbc