请帮助将此SQL字符串转义为C#字符串

时间:2013-05-20 08:04:49

标签: c#

'<ad name="'+ am.name+ '" tag="C" cityid="'+cast(am.city_id as varchar) +'" 
 stateid="'+convert(varchar(11),cast(cm.state_id as varchar)) +'" capital="N"> 
 </ad>' as chkdata 

我在SQL查询中有上述语句。

我想将其添加到C#string

不成功的尝试

string sqlqry = "\'<ad name=""\'+ am.name_id + \'"" tag=""C"" 
cityid=""\'+cast(am.city_id as varchar) +\'"" 
stateid=""\'+convert(varchar(11),cast(cm.state_id as varchar)) +\'"" capital=""N"">
</ad>\' as chkdata ,";

后来我这样做了。我正在用字符串构建一个查询。

sqlcountcmd = new SqlCommand(finalsqlqry, sqlconn);
所有保证的

+1

2 个答案:

答案 0 :(得分:2)

大概是整个事物被视为sql - 而不是sql和C#的组合。因此,如果我们使用逐字字面量,我们只需要担心" s:

string s = @"'<ad name=""'+ am.name+ '"" tag=""C"" cityid=""'+cast(am.city_id as varchar) +'"" 
stateid=""'+convert(varchar(11),cast(cm.state_id as varchar)) +'"" capital=""N""> 
</ad>' as chkdata ,";

然而!我强烈建议不要这样做。您应该从SQL返回 columns ,让您的应用层担心xml / html等。

答案 1 :(得分:1)

所以,如果我理解正确,你只需要避开双引号"而不是单引号'

string sqlqry = "'<ad name=\"'+ am.name_id + '\" tag=\"C\" " +
"sectordetailid=\"'+cast(am.sector_detail_id as varchar) +'\" " +
"stateid=\"'+convert(varchar(11),cast(cm.state_id as varchar)) +'\" capital=\"N\">" +
"</ad>' as chkdata";

你可以使用逐字符@我确定,但我没有让Visual Studio在我面前检查。