未处理OleDBException:查询中的语法错误(不完整的查询子句)

玛特奥NNZ

我正在尝试通过C#在Access数据库上执行一个非常简单的SQL语句。

该语句是这样的:

select M_PASSWORD from TB_USERS where M_USERNAME = 'myuser'

这是我用来执行SQL语句的C#代码:

string connString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + sources.global_variables.db_source;
using (OleDbConnection connection = new OleDbConnection(connString))
{
    connection.Open();
    OleDbDataReader reader = null;
    OleDbCommand command = new OleDbCommand("SELECT @1 from @2 WHERE @3='@4'", connection);
    command.Parameters.AddWithValue("@1", db_column);
    command.Parameters.AddWithValue("@2", db_table);
    command.Parameters.AddWithValue("@3", db_where_column);
    command.Parameters.AddWithValue("@4", db_where_value);
    reader = command.ExecuteReader();
    //rest of code

一旦到达该行reader = command.ExecuteReader();,读取器将无法执行查询,并显示以下错误消息:OleDBException was unhandled: Syntax error in query (Incomplete query clause)我已经调试了代码,以查看是否可以在参数值中看到任何错误的分配,但是它们看起来不错。

此外,在数据库的查询分析器上执行完全相同的查询,我检索了我想要的值。

谁能给我一个提示以发现问题并了解我的错在哪里?

星际飞行员

我认为参数不能以您发布的方式使用。参数用于填充值(即,将DateTime值作为要在表中更新的DateTime列的值放置在update语句中)。

尝试更改代码,以使列名和表名以文本形式提供或以字符串形式填充。如果要在where子句中填写不同的列名,不同的表名和不同的列名,则可以构建查询字符串。因此,除了您发布的内容以外,请尝试其他类似的操作:

string connString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + sources.global_variables.db_source;
using (OleDbConnection connection = new OleDbConnection(connString))
{
    connection.Open();
    OleDbDataReader reader = null;
    string strQuery = "SELECT " + constStringColumnName1 + " FROM " + theTableNamePassedInAsString + " WHERE " + strWhereClauseBuiltEarlierInThisFunction + " = '@1'";
    OleDbCommand command = new OleDbCommand( strQuery , connection);
    command.Parameters.AddWithValue("@1", db_where_value);
    reader = command.ExecuteReader();
    //rest of code
}

当然,您可以设置字符串格式并插入更改中的选择列名称,表名称和where子句。生成您的选择/命令字符串,然后使用“参数”填写实际值,这是正常用法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

查询中的语法错误。函数内Max语句中不完整的查询子句

来自分类Dev

PHP:[Microsoft] [ODBC Microsoft Access驱动程序]查询中的语法错误。不完整的查询子句

来自分类Dev

OleDbException未处理,WHERE子句中的语法错误?

来自分类Dev

在Textarea中查询的TEXT不完整

来自分类Dev

查询从FROM子句返回的语法错误

来自分类Dev

where子句中的查询语法错误

来自分类Dev

领域查询返回Android中设置的不完整结果

来自分类Dev

Bigquery API的查询结果中的架构不完整

来自分类Dev

Bigquery API的查询结果中的架构不完整

来自分类Dev

无法在 SQL 查询中传递值:格式不完整

来自分类Dev

Promela语法错误:错误:结构参考“表”不完整时看到“运算符:=”

来自分类Dev

如何查询不完整的输入

来自分类Dev

查询语法错误

来自分类Dev

查询语法错误

来自分类Dev

查询表达式中的语法错误(缺少运算符):System.Data.OleDb.OleDbException

来自分类Dev

MYSQL-删除查询中有in子句的语法错误

来自分类Dev

Pyodbc - 使用 WHERE 子句运行 SQL 查询(语法错误)

来自分类Dev

在 UPDATE 查询中使用 IN 子句的语法错误

来自分类Dev

子查询中的MySQL语法错误

来自分类Dev

MS Access查询中的语法错误?

来自分类Dev

MySql中的查询语法错误

来自分类Dev

连接查询中的mysql语法错误

来自分类Dev

PHP中的SQL查询语法错误

来自分类Dev

MS Access查询中的语法错误?

来自分类Dev

MySQL Join查询中的语法错误

来自分类Dev

PHP中的SQL查询语法错误

来自分类Dev

sybase查询中的语法错误

来自分类Dev

mysql查询中的语法错误

来自分类Dev

SQL查询中AND的语法错误

Related 相关文章

热门标签

归档