创建 OleDBConnection

Creating OleDBConnection

我正在将代码从 VS2010 迁移到 VS2013,我在 VS2010 中的语法在 13 中显示编译错误?!?有人可以帮助我解释为什么会抛出这两个编译错误吗?

Syntax error, ',' expected
{ expected

这是在 10.w/o 问题中有效的语法。

    public static string DCAVACA(string badTable)
    {
        olecon = new OleDbConnection(OLECONN)
        {
            olecon.Open();
            deleteTable = new string[1] { "badTable" };
            for (int q = deleteTable.GetLowerBound(0); q <= deleteTable.GetUpperBound(0); q++)
            {
                System.Data.OleDb.OleDbCommand cmd = new OleDbCommand("DROP TABLE " + deleteTable[q], olecon);
                cmd.ExecuteNonQuery();
            }
        }
        return null;
    }

我认为该语法不适用于 Visual Studio tbh 的任何版本。 FWIW,我想你想使用 using 语句:

    public static string DCAVACA(string badTable)
    {
        using (var olecon = new OleDbConnection(OLECONN)) // only change required for *syntactic* reasons
        {
            olecon.Open();
            deleteTable = new string[1] { "badTable" };
            for (int q = deleteTable.GetLowerBound(0); q <= deleteTable.GetUpperBound(0); q++)
            {
                System.Data.OleDb.OleDbCommand cmd = new OleDbCommand("DROP TABLE " + deleteTable[q], olecon);
                cmd.ExecuteNonQuery();
            }
        }
        return null;
    }

一般代码还有一些其他问题(badTable 变量根本没有使用,deleteTable 作为静态 string[2] 无用,命名等),但这超出了范围。

您在 olecon = new OleDbConnection(OLECONN) 后少了一个分号。

"new" 后的大括号用于设置新创建对象的attributes/properties,而不是运行 其他任意代码。如果这确实在 VS2010 中 运行,我不知道为什么。