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工作簿。
答案 0 :(得分:1)
变化
data1 = DataAccess.DatabaseTables("SELECT * from [Sheet1$])", DataAccess.database);
与
data1 = DataAccess.DatabaseTables("SELECT * from [Sheet1$]", DataAccess.database);
还有一个额外的结束括号。
希望它有效。