【问题标题】:Problems connecting to an access database连接到 access 数据库的问题
【发布时间】:2011-06-07 03:01:08
【问题描述】:

我在连接到以下路径中的 access 数据库时遇到问题:C:\tgs_webedit\pool\n_pool.mdb。

我正在使用 odbc 连接,我的问题在以下行: OdbcConnection DbConnection = new OdbcConnection("DNS = C:\tgs_webedit\pool\n_pool.mdb");

我收到以下错误:System.Data.Odbc.OdbcException: ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

任何帮助将不胜感激。

【问题讨论】:

    标签: .net odbc


    【解决方案1】:

    尝试将其更改为:

    OdbcConnection DbConnection = new OdbcConnection("Driver={Microsoft Access Driver (*.mdb)};DBQ = C:\\tgs_webedit\\pool\\n_pool.mdb");
    

    如果您想使用 DSN,请不要提供 mdb 文件的路径(并将 DSN 放在您的连接字符串中,而不是 DNS)。如果要使用路径,请使用 DBQ 并转义斜杠。这是一个很好的链接,涵盖了所有这些:

    http://msdn.microsoft.com/en-us/library/system.data.odbc.odbcconnection.connectionstring.aspx

    【讨论】:

    • 我使用了你的建议并得到了更多错误:不是有效的文件名。和一般警告无法打开注册表项 'Temporary (volatile) Jet DSN for process 0x140c Thread 0x1368 DBC 0x4cfc64c Jet'
    • 您确定该文件存在吗?您的路径中没有任何拼写错误?
    【解决方案2】:

    句法问题:

    使用@字符串OdbcConnection(@"DNS = C:\tgs_webedit\pool\n_pool.mdb"); 或转义反斜杠OdbcConnection("DNS = C:\\tgs_webedit\\pool\\n_pool.mdb");

    功能问题:

    ODBC DSN 连接应指定在 ODBC 数据源中定义的 DSN 名称。司机可能会“做正确的事”——也可能不会。为了安全起见,请测试以标准方式获得连接*。

    • 标准方式

    使用“控制面板”-“管理任务”-“数据源 (ODBC)”添加用户或系统 DSN。选择访问驱动程序,指定数据源名称并选择/浏览您的 n_pool.mdb。然后您可以测试连接并可能设置一些选项。在连接字符串中使用数据源名称。 (使用 Abe Miessler 的方式(无 dsn 连接)可能会更快尝试,但 Data Sources GUI 可以更轻松地查找问题)

    【讨论】:

    • 我怎样才能以标准方式获得它?任何可以提供帮助的链接?
    【解决方案3】:

    您可能对 x64 有问题,Microsoft JET4.0 仅适用于 x86(或者我完全错了,这与 JET 和 x64 的非移植问题无关)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-28
      • 2017-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-05
      相关资源
      最近更新 更多