"Syntax error in FROM clause" Excel 在 C# 中
"Syntax error in FROM clause" Excel in c#
我有一个 Excel 文件,我想使用 OleDb 在 c# 中读取它,如下面的代码:
string sheetName = "sheet1";
try
{
string stringConnection = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=excelfile.xls;Extended Properties='Excel 12.0;HDR=Yes;IMEX=1;MAXSCANROWS=0';";
OleDbConnection OleDbConnection_ = new OleDbConnection(stringConnection);
OleDbCommand OleDbCommand_ = new OleDbCommand("select * from [" + sheetName + "$]; ", OleDbConnection_);
OleDbConnection_.Open();
DataTable DataTable_ = new DataTable();
DataTable_.Load(OleDbCommand_.ExecuteReader(), LoadOption.OverwriteChanges);
OleDbConnection_.Close();
}
catch (Exception)
{
throw;
}
一切正常,就在我将 SheetName 值更改为 " topos .architectures.bureaux " 就像我在 xls 文件中的名称一样,显示异常:
FROM 子句中的语法错误。
我搞砸了什么,谢谢。
我认为您只需删除 "select * from [" + sheetName + "$]; "
中的 $
$
确实在 Excel 本身的引用中使用,但我认为它不适用于 OleDB 命令语法
参考这个问题:Reading from excel using oledbcommand
问题出在 Sheet 名称中的圆点,圆点应该是 #。
像那样:
"select * from ['" + sheetName.Replace('.', '#') + "$'];"
我有一个 Excel 文件,我想使用 OleDb 在 c# 中读取它,如下面的代码:
string sheetName = "sheet1";
try
{
string stringConnection = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=excelfile.xls;Extended Properties='Excel 12.0;HDR=Yes;IMEX=1;MAXSCANROWS=0';";
OleDbConnection OleDbConnection_ = new OleDbConnection(stringConnection);
OleDbCommand OleDbCommand_ = new OleDbCommand("select * from [" + sheetName + "$]; ", OleDbConnection_);
OleDbConnection_.Open();
DataTable DataTable_ = new DataTable();
DataTable_.Load(OleDbCommand_.ExecuteReader(), LoadOption.OverwriteChanges);
OleDbConnection_.Close();
}
catch (Exception)
{
throw;
}
一切正常,就在我将 SheetName 值更改为 " topos .architectures.bureaux " 就像我在 xls 文件中的名称一样,显示异常:
FROM 子句中的语法错误。
我搞砸了什么,谢谢。
我认为您只需删除 "select * from [" + sheetName + "$]; "
$
$
确实在 Excel 本身的引用中使用,但我认为它不适用于 OleDB 命令语法
参考这个问题:Reading from excel using oledbcommand
问题出在 Sheet 名称中的圆点,圆点应该是 #。
像那样:
"select * from ['" + sheetName.Replace('.', '#') + "$'];"