无法使用ODBC连接到数据库

时间:2020-04-13 15:34:33

标签: c# .net postgresql odbc

我有一个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驱动程序是否存在问题?我的代码有问题吗?

1 个答案:

答案 0 :(得分:0)

我使用{PostgreSQL UNICODE}驱动程序修复了它,不知道为什么默认设置不起作用