【问题标题】:I get an "Error: Cannot initialize OLE" when I try to connect to a database? C#尝试连接数据库时出现“错误:无法初始化 OLE”? C#
【发布时间】:2012-05-12 05:47:52
【问题描述】:

我正在尝试通过 C# 连接到数据库,但是当我这样做时收到一条非常无用的错误消息:

"08:44:17: 错误: 无法初始化 OLE 08:44:17:错误:无法初始化 OLE”

我已尝试寻找解决方案,但没有成功。我也试过重启电脑,也没有用。

我运行的是 SQL Server 2008,这里是相关的数据库代码:

/// <summary>
    /// Connects to a given database and returns the database connection.
    /// </summary>
    /// <param name="file">The database file name.</param>
    /// <returns>The database connection.</returns>
    public static SqlConnection ConnectToDb(string file)
    {
        //initialize generic path
        string path = System.Reflection.Assembly.GetExecutingAssembly().Location;
        path = path.Replace("bin\\Debug\\MediaPlayer.exe", "");
        path += "Database.mdf";

        string connectionPath = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + path + ";Integrated Security=True;User Instance=True";
        SqlConnection connection = new SqlConnection(connectionPath);
        return connection;
    }

    /// <summary>
    /// Executes a SQL query in a given database.
    /// </summary>
    /// <param name="file">The database file name.</param>
    /// <param name="query">The SQL query to execute.</param>
    public static void ExecuteQuery(string file, string query)
    {

        SqlConnection connection = ConnectToDb(file);
        connection.Open();
        SqlCommand command = new SqlCommand(query, connection);
        command.ExecuteNonQuery();
        connection.Close();
    }

这是我在几个项目中使用过的数据库代码,以前一直有效。

在 ExecuteQuery 方法中的 connection.Open() 行上调用错误(我知道这一点是因为我注释掉了其他行)。

任何帮助/建议将不胜感激:)。

编辑:我测试了与数据库的连接并检查了所有内容,但我只是不明白为什么我无法通过代码连接。

【问题讨论】:

  • 第一次...打开 SSMS 并尝试连接到 sqlexpress。
  • 如何打开 SSMS?抱歉,我没有经验 :P.. 它在 Visual Studio 中既不是程序也不是工具栏..
  • SSMS 是 sql server 附带的用户界面。所以你打开Microsoft SQL Management Studio,连接到你的服务器,看看sql server是否正常工作。
  • @Daniel 为什么你这样连接而不是直接连接到 sql server?

标签: c# sql-server database database-connection ole


【解决方案1】:

对于任何可能正在寻找的人,我最终通过在 Main() 方法之前添加 [STAThread()] 解决了这个问题。 :)

【讨论】:

    【解决方案2】:

    我怀疑您正在为 x64 CPU 构建项目。 x64 没有 OLE 驱动程序。我建议将构建目标从 ANY CPU 更改为 x86。

    【讨论】:

    • 可能是我理解错了,但是我打开了项目属性,打开了“Build”面板,在Platform下选择的选项是“Active (x86)”..其实只有这个选项。
    • 我正在运行 64 位 Windows 7。
    猜你喜欢
    • 1970-01-01
    • 2021-02-25
    • 2021-10-15
    • 2020-07-13
    • 2019-07-25
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    • 2014-03-08
    相关资源
    最近更新 更多