1
'<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 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 所有保证

4

2 回答 2

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 返回,让您的应用层担心 xml/html 等。

于 2013-05-20T08:13:03.707 回答
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 可供检查。

于 2013-05-20T08:13:14.630 回答