Sql Query Help,语法错误接近=

Dan*_*ani 3 c# sql t-sql sql-server

为什么这不起作用?这是关于命令串语法附近的东西,=但我似乎无法弄明白,在线示例似乎完全相同. 编辑:已激活在列中.

从实例如何与许多过滤选项中进行选择,从数据库中的数据?

private void btnDist_Click(object sender, EventArgs e)
{
    string cmdText = "SELECT * FROM Inventory WHERE Rep <> '#NA' AND Activated In = '#NA'";
    SqlDataAdapter adapter = new SqlDataAdapter(cmdText, GetConnection());
    DataSet distDS = new DataSet();
    adapter.Fill(distDS);

    dataGridView1.DataSource = distDS.Tables[0].DefaultView;
}
Run Code Online (Sandbox Code Playgroud)

Jus*_*tin 6

如果数据库中列的名称是Activated In(带空格),则在引用查询中的对象/列名称时需要使用方括号,例如:

SELECT * FROM Inventory WHERE Rep <> '#NA' AND [Activated In] = '#NA'
Run Code Online (Sandbox Code Playgroud)

这是因为SQL将空格视为查询语言中的分隔符 - 方括号用于在名称中"转义"此(以及其他字符).

或者,如果刚刚调用该列,Activated那么您不需要该IN位 - 测试是否相等或测试以查看该值是否在给定范围内,但不同时执行这两项操作.

-- Use this
SELECT * FROM Inventory WHERE Rep <> '#NA' AND Activated = '#NA'
-- Or this
SELECT * FROM Inventory WHERE Rep <> '#NA' AND Activated IN ('#NA', 'Some other value')
Run Code Online (Sandbox Code Playgroud)

  • 这就是为什么你应该首先避免在表设计中使用空格或关键字.如果这是一个尚未推送的新表,我会立即修复该字段名. (2认同)