我试图将参数传递给quert,但它不起作用。什么是最好的方式来做到这一点?我不想连接字符串。这里是我的查询:使用LIKE的sql参数化查询
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
2014-04-02
cihata87
+0
你正在收到什么错误? –
+0
看起来你至少错过了类似值的SQL中的文本撇号。应该适当成为参数值的一部分。 –
+0
@GordonLinoff'?'附近语法不正确 –