Невозможно подключиться к базе данных с использованием ODBC - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть приложение 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? Что-то не так с моим кодом?

1 Ответ

0 голосов
/ 13 апреля 2020

Я исправил это с помощью драйвера {PostgreSQL UNICODE}, понятия не имею, почему по умолчанию не будет работать

...