在C#中用作字符串时,相同的查询显示不同的结果

时间:2015-08-31 10:57:34

标签: c# sql-server string

SQL查询

SELECT [ServerName]+ '\' + PARSENAME(REPLACE([Instance],'\','.'), 1) AS SIN,DATE FROM [DBReports].[dbo].[Accesslevelreport]

C#查询

 "SELECT [ServerName]+ '\' + PARSENAME(REPLACE([Instance],'\','.'), 1) AS SIN,DATE FROM [DBReports].[dbo].[Accesslevelreport]";

我想用C#转换它,但与在SQL中运行相比,结果有所不同

 Results from SQL=  ANDSQLP47\DWMOD  
  Results from C#= ANDSQLP47ANDSQLP47\DWMOD

预期结果

Data in [ServerName]= ANDSQLP47
Data in [Instance] =ANDSQLP47\DWMOD

SIN列将包含服务器名称和实例名称,用反斜杠分隔(' \')。如果 从数据库中读取的实例字段在文本中包含斜杠(' \'),删除 在组合字段之前,斜杠和它左边的所有内容 电子表格的SIN列(仅截断此处理 - 没有 数据库中的变化)  例如:如果实例字段包含 ' ANDSQLP47 \ CTOPROD8R2',然后将其截断为' CTOPROD8R2'之前 将它与ServerName字段组合。

1 个答案:

答案 0 :(得分:1)

逃避您的查询。

var query = @"SELECT [ServerName]\PARSENAME(REPLACE([Instance],'\','.'), 1) AS SIN,DATE" + 
                                "FROM [DBReports].[dbo].[Accesslevelreport]";

or

var query = @"
      SELECT [ServerName]\PARSENAME(REPLACE([Instance],'\','.'), 1) AS SIN, DATE 
      FROM [DBReports].[dbo].[Accesslevelreport]
";