C# 查询表达式中的oledb语法错误(缺少运算符)

C# 查询表达式中的oledb语法错误(缺少运算符),c#,syntax-error,oledb,C#,Syntax Error,Oledb,我正在尝试使用oledb将xlsx导入datagrid。 但我发现:查询表达式中存在语法错误(缺少运算符)。我读过其他相关文章,但没有帮助 代码如下: private void button1_Click(object sender, EventArgs e) { OleDbConnection conn = new OleDbConnection(); conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Da

我正在尝试使用oledb将xlsx导入datagrid。 但我发现:查询表达式中存在语法错误(缺少运算符)。我读过其他相关文章,但没有帮助 代码如下:

private void button1_Click(object sender, EventArgs e)
{

    OleDbConnection conn = new OleDbConnection();
    conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\alm1.xlsx" + @";Extended Properties=""Excel 12.0 Xml;HDR=YES;ImportMixedTypes=Text;TypeGuessRows=0""";
    OleDbCommand command = new OleDbCommand("SELECT TXT" + "FROM [2$]", conn);
    DataSet dstxt = new DataSet();
    OleDbDataAdapter adapter = new OleDbDataAdapter(command);
    adapter.Fill(dstxt);
    dataGridView1.DataSource = dstxt.Tables[0];

有人能帮忙吗?我很确定这是我犯的一个愚蠢的错误,但我无法理解。

打字:解析为
TXTFROM
添加一个空格
“SELECT TXT”+“FROM[2$]”,conn
不管怎样,当人们编写动态sql时都会发生这种情况。。试试这个,它就在你的“从[2$]中选择TXT”,康涅狄格州,为什么你要用两组引号包装你的选择。我强烈建议让这个查询使用参数并实现
string.Format()
函数这将使阅读更干净、更容易..Alex K.在哪里添加一个空格?在TXT和FROM之间添加一个空格,这样它就可以读取:
TXT FROM
,正如其他人指出的,
“SELECT TXT”+“FROM[2$]”
变成了“SELECT TXTFROM[2$]”。在“TXT”和“FROM”之间需要一个空格。您应该养成使用参数化查询的习惯。