我有一个C#Windows Forms应用程序.NET 4.5.2。
我正在尝试连接到localhost中的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驱动程序是否存在问题?我的代码有问题吗?
答案 0 :(得分:0)
我使用{PostgreSQL UNICODE}驱动程序修复了它,不知道为什么默认设置不起作用