C# Sql Compact edition-简单select语句不使用';行不通
我有一个很简单的问题,我似乎无法克服 我正在尝试使用sql ce执行以下代码行:C# Sql Compact edition-简单select语句不使用';行不通,c#,sql-server-ce,C#,Sql Server Ce,我有一个很简单的问题,我似乎无法克服 我正在尝试使用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; 出于
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"
而不是你所拥有的。请注意@barcode
中缺少引号,请尝试:
new SqlCeCommand("SELECT * FROM Items WHERE barcode = @barcode", conn);
comSelect.Parameters.Add(new SqlCeParameter("@barcode", System.Data.SqlDbType.NVarChar, 100)).Value = barC;
如果将参数放在单引号(
“@barcode”
)中,那么它实际上是一个字符串文字,不再是参数。因此,您的选择正在搜索列条形码
包含值@barcode
的项目-这显然不是您想要的…谢谢!!我想当你声明一个参数为NVarChar类型时,它会把引号放在那里,所以当我把它放在那里时,它的语句是:“SELECT…WHERE barcode=''123ABC''对不起,我错过了缺少引号的地方。你的回答也很好