У меня есть приложение C# Windows Forms, NET 4.5.2.
Я пытаюсь подключиться к базе данных postgres в localhost. Я определяю следующую строку подключения:
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"
(сообщение об ошибке переведено с испанского sh, поэтому, возможно, это не совсем так)
Таким образом, похоже, что строка соединения не работает, но я уверен, что он имеет правильный формат. Я скопировал его по этой ссылке: https://www.connectionstrings.com/postgresql-odbc-driver-psqlodbc/
Я уверен, что IP и порт верны. Я также уверен, что правильно указал имя базы данных, имя пользователя и пароль. Есть ли какая-то проблема с драйвером PostgreSQL в NET? Что-то не так с моим кодом?