c# - 无法弄清楚 OLE DB 连接,C# 到 Access 2016

标签 c# ms-access

我正在 VS Community 2015 中编码。我使用的是一台装有 Windows 10 的新计算机,刚刚从 8.0 升级。我有一个独立的(没有Office套件)Access 2016 安装。一切正常。

我找不到可以为我提供 Access 2016 连接字符串的蹲点。所以 我尝试了这段代码(十几个版本):

    public OleDbConnection TryOleDbConnection()
    {
        string ConnString =
            "Provider=Microsoft.ACE.OLEDB.15.0;" + 
            "Data Source=" + 
            "C:\\A A A A AutoBot4\\CALENDAR\\CALENDAR.addcb;" +
            "User Id=admin; Password=;";
        MessageBox.Show(ConnString);

        OleDbConnection OLE = new OleDbConnection();
        OLE.ConnectionString = ConnString;

        try
        {
            OLE.Open();
            MessageBox.Show("Opened");
        }
        catch (Exception ex)
        {
            MessageBox.Show("Failed");
        }
        finally
        {
        }
        return OLE;
    }

我无法让任何东西工作,并且不知道如何获得更好的错误信息。我在一台未联网的计算机上,并且是唯一的用户和管理员。 我也对用户 ID 和密码感到困惑,不明白它们是否指的是系统或数据库或其他东西。任何帮助将不胜感激!我确信一旦建立连接,剩下的事情就会很容易。

最佳答案

你可以使用这样的函数:

 public void FindProvider()
 {
      var reader = OleDbEnumerator.GetRootEnumerator();

      var list = new List<String>();
      while (reader.Read())
      {
           for (var i = 0; i < reader.FieldCount; i++)
           {
                if (reader.GetName(i) == "SOURCES_NAME")
                {
                     list.Add(reader.GetValue(i).ToString());
                }
           }
      }
      reader.Close();
      foreach (var provider in list)
      {
           if (provider.StartsWith("Microsoft.ACE.OLEDB"))
           {
                this.provider = provider.ToString();
           }
      }
 }

它所做的只是搜索系统上可能的提供程序并选择与 Microsoft.ACE.OLEDB 匹配的提供程序,但您可以将其更改为您想要的。您还需要注意,如果您有 64 位版本的 Office 2016,您的应用程序必须在 64 位模式下运行;如果您的 Office 版本是 32 位,则您的应用程序必须在 32 位模式下运行。

关于c# - 无法弄清楚 OLE DB 连接,C# 到 Access 2016,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35618860/

相关文章:

c# - 如何迭代 MS-Access 表单上的控件?

SQL Server 不存在或 Access 被拒绝(间歇性)

ms-access - Access 2007 - 在表单上显示 PDF 内容

c# - 允许用户自定义页面部分

c# - Visual Studio 2010+ 中的自定义关键字着色

c# - 将单独的列表绑定(bind)到一个列表框中

sql - 无法使用 MS Access 前端删除记录

c# - 专注于应用程序时无法显示任务栏

c# 接口(interface)实现 - 为什么不构建?

C# MS Access 数据库连接 System.Data.SqlClient.SqlException' 发生在 System.Data.dll