Sql压缩版 - 简单的选择语句不起作用
我有这个非常简单的麻烦,我似乎无法克服。Sql压缩版 - 简单的选择语句不起作用
我试图执行该代码行与SQL CE:
SqlCeCommand comSelect = new SqlCeCommand("SELECT * FROM Items WHERE barcode = '@barcode'", conn);
comSelect.Parameters.Add(new SqlCeParameter("barcode", System.Data.SqlDbType.NVarChar, 100)).Value = barC;
出于某种奇怪的原因 - 它总是回来称为空即没有找到结果。如果我把参数值由自己在查询字符串,像这样:
SELECT * FROM Items WHERE barcode = '123ABC'
然后它工作完美。我会补充说这个列是一个NVarChar。
任何想法,为什么这不工作?
尝试使用这样的:
"SELECT * FROM Items WHERE barcode = @barcode"
而不是你拥有什么。请注意0中缺少引号。
谢谢!我想,当你声明一个参数为NVarChar类型时,它将自己的引号放在那里,所以当我把它放在时,语句是:“SELECT ... WHERE barcode =''123ABC'' – 2011-12-24 12:52:23
尝试:
new SqlCeCommand("SELECT * FROM Items WHERE barcode = @barcode", conn);
comSelect.Parameters.Add(new SqlCeParameter("@barcode", System.Data.SqlDbType.NVarChar, 100)).Value = barC;
没有帮助: ( – 2011-12-24 12:24:22
对不起,我错过了缺乏引号。你的回答也不错 – 2011-12-24 14:57:12
如果你把你的参数为单引号(''@ barcode''),那么这真是一个**字符串字面** - 不是了参数。因此,您的SELECT正在搜索“条形码”列中包含值“@ barcode”的项目 - 这显然不是您想要的。 – 2011-12-24 12:22:20