我尝试连接数据库时遇到“错误:无法初始化OLE”? C#

时间:2012-05-12 05:47:52

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

我正在尝试通过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()行上调用错误(我知道这是因为我注释掉了其他行)。

非常感谢任何帮助/建议:)。

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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