【发布时间】:2014-05-13 06:12:54
【问题描述】:
我尝试将参数传递给 quert,但它不起作用。最好的方法是什么?我不想连接字符串。这是我的查询:
string cmd = @"
SELECT
*
FROM
TABLE
WHERE
p.PromptTypeID = pt.ID
AND p.PromptDomainID = pd.ID
AND p.LanguageID = pl.ID
AND p.VoiceID = pv.ID
AND p.Active='Y'
AND PromptText LIKE ?
ORDER BY
p.ID DESC";
using (SqlCommand command = new SqlCommand())
{
command.CommandText = cmd;
command.Transaction = transac;
command.Connection = cnn;
command.Parameters.Add("?", SqlDbType.VarChar, 50).Value = "%" + text + "%";
using (SqlDataAdapter adp = new SqlDataAdapter(command))
{
adp.Fill(dt);
}
}
我无法使用 LIKE 运算符传递值。我也尝试过使用@text 而不是“?”但它不起作用。有什么建议吗?
顺便说一下,'?' 附近的语法不正确SqlException
【问题讨论】:
-
您遇到的错误是什么?
-
看起来您至少在 SQL 中缺少类似值的文本撇号。应该是您的参数值的一部分。
-
@GordonLinoff '?' 附近的语法不正确
-
请不要使用“它不起作用”。总是写你得到的具体错误。您需要写出使用
@text时发生的具体情况,并使用@text 发布代码。
标签: c# sql sql-server-2008 sql-parametrized-query