Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Sql Compact edition-简单select语句不使用';行不通_C#_Sql Server Ce - Fatal编程技术网

C# Sql Compact edition-简单select语句不使用';行不通

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; 出于

我有一个很简单的问题,我似乎无法克服

我正在尝试使用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"
而不是你所拥有的。请注意
@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''对不起,我错过了缺少引号的地方。你的回答也很好