【发布时间】:2020-05-29 08:38:39
【问题描述】:
在 c# 中,我有以下代码行:
string mySqlStmt = "SELECT CASE WHEN (SELECT COUNT(*) FROM tlGenericName WHERE ( UPPER(ltrim(rtrim(genericName_str))) = '" + this.cmbGenericName.Text.Trim().ToUpper() + "' ) ) > 0 THEN"
+ " ( SELECT top(1) isnull(genericNameCode_str, '') FROM tlGenericName "
+ " WHERE ( UPPER(ltrim(rtrim(genericName_str))) = '" + this.cmbGenericName.Text.Trim().ToUpper() + "' ) ) ELSE '' END";
然后我使用 SqlCommand(在 c# 中)来执行 Scalar。 但是,我收到以下错误:
Incorrect syntax near 'S'
我注意到某些记录会发生这种情况(参数值中断);例如:
'BANDAGE P.O.P.ROLL TYPE 1;200MMX2.7M 12's'
如何在设计器(c#)中安全地传递Sql中的字符串参数?
【问题讨论】:
-
字符串文字中的引号必须加倍,IIRC。
-
您必须使用 SqlParameter 才能对查询进行参数化。这是一个简单的walkthrough
标签: c# syntax-error sqlcmd