From子句Excel中的语法错误

时间:2013-05-20 09:56:42

标签: c# .net excel oledbconnection oledbcommand

 public void SetConnection(string text1, string text2, string text3, string text4, string text5, string text6, string text7)
    {


        connectionString1 = "Initial Catalog=testdb; Data Source=work\\sqlexpress";




        database = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='c:\\Users\\test.xls';Extended Properties= \"Excel 8.0;HDR=Yes;IMEX=1\";");
        database.Open();
        database1 = new OleDbConnection("Provider=SQLOLEDB.1;" + connectionString1);
        database1.Open();
    }

data1 = DataAccess.DatabaseTables("SELECT * from [Sheet1$])", DataAccess.database); 

 public DataTable DatabaseTables(string QueryString, OleDbConnection DataConnection)
    {

        OleDbCommand SQLQuery = new OleDbCommand();
        DataTable data = null;
        SQLQuery.Connection = null;
        OleDbDataAdapter dataAdapter = null;
        SQLQuery.CommandText = QueryString;
        SQLQuery.Connection = DataConnection;
        data = new DataTable();
        dataAdapter = new OleDbDataAdapter(SQLQuery);

        dataAdapter.Fill(data);
        return data;
    }

对于从data1开始的代码行,我得到异常“from子句中的语法错误”。该行调用DatabaseTables下面的函数,它生成此异常。 我还在fn SetConnection中包含了使用jet等的连接字符串。我认为问题可能是连接字符串本身。目前我必须打开excel文件以防止“无法解密”错误。我确实尝试过ACE驱动程序,但遇到了错误。 excel工作簿保存为97-03工作簿。

1 个答案:

答案 0 :(得分:1)

变化

data1 = DataAccess.DatabaseTables("SELECT * from [Sheet1$])", DataAccess.database); 

data1 = DataAccess.DatabaseTables("SELECT * from [Sheet1$]", DataAccess.database);

还有一个额外的结束括号。

希望它有效。