【发布时间】:2014-07-11 14:29:32
【问题描述】:
我在我的 C# 代码中添加了一个多行 SQL 代码,如下所示:
sqlCode = @"SELECT
w.objectID,
w.attr1397 'LastName',
w.attr1395 'FirstName',
w.attr1396 'MiddleName',
w.attr1404 'Gender',
w.attr1436 'OtherName',
convert(varchar,w.attr1402, 101) 'DOB' ,
w.attr1401 'SSN',
d.employmentStatus
FROM [db].[table] w left outer join
(
WHERE w.attr1397 = '" + k + "'
AND
w.attr1395 = c
AND
w.attr1401 = s
ORDER BY 4, 2, 3";
k、c 和 s 是我想要使用的函数的变量,这就是发生的情况:
我该如何解决?
【问题讨论】:
-
使用参数化查询。有关示例,请参阅
SqlCommand.Parameters。 (我希望参数化 SQL 可以在 any 合理地介绍从 C# 访问数据库。)您的编译时错误是因为您的第二个字符串文字不是逐字字符串文字,顺便说一句。跨度> -
k、c 和 s 是我想在 sql 查询中使用的变量。
-
嗯,第一个问题是当你使用
@作为第一个字符串时,你没有使用它作为第二个字符串(在k之后)。 -
我看到了单个变量的例子,我如何使用多个变量作为参数?
-
@SiKni8:MSDN 中
SqlCommand.Parameters的示例已经有多个参数。你真的需要做一些研究之前提出问题。