【问题标题】:Unable to connect to database using ODBC无法使用 ODBC 连接到数据库
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-08
      • 2013-11-18
      • 1970-01-01
      • 1970-01-01
      • 2018-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多