Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中用作字符串时显示不同结果的同一查询_C#_Sql Server_String - Fatal编程技术网

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

C# 在C中用作字符串时显示不同结果的同一查询,c#,sql-server,string,C#,Sql Server,String,SQL查询 C查询 我想在C中转换它,但结果与在SQL中运行的结果不同 Results from SQL= ANDSQLP47\DWMOD Results from C#= ANDSQLP47ANDSQLP47\DWMOD 预期结果 SIN列将包含服务器名和实例名,用反斜杠“\”分隔。如果 从数据库读取的实例字段在文本“\”中包含斜杠,请删除 斜杠和它左边的所有内容,然后再合并 电子表格的SIN列仅截断此项以进行处理-无任何处理 数据库中的更改。 例如:如果实例字段包含 '和sql

SQL查询

C查询

我想在C中转换它,但结果与在SQL中运行的结果不同

 Results from SQL=  ANDSQLP47\DWMOD  
  Results from C#= ANDSQLP47ANDSQLP47\DWMOD
预期结果

SIN列将包含服务器名和实例名,用反斜杠“\”分隔。如果 从数据库读取的实例字段在文本“\”中包含斜杠,请删除 斜杠和它左边的所有内容,然后再合并 电子表格的SIN列仅截断此项以进行处理-无任何处理 数据库中的更改。 例如:如果实例字段包含 '和sqlp47\CTOPROD8R2',然后在
将其与ServerName字段相结合。

只需转义查询即可

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]
";

您的查询似乎有一些转义字符。例如,如果要在字符串中添加反斜杠字符,则应使用“\\”而不是“\”。使用双反斜杠而不是一个反斜杠。我试过了。你能告诉我正确的语法吗?它可以像选择[ServerName]+'\\'+PARSENAMEREPLACE[Instance],'\\','.',1作为SIN,日期从[DBReports].[dbo].[Accesslevelreport];如果您只是在字符串文本前面加上@,则可能不需要转义任何内容,但这取决于您实际如何用C编写字符串。您发布的内容可能是字符串变量的内容,但不是C代码。实际的代码是什么?万岁的逐字字符串:他们甚至不需要+在换行符;是的,在这种情况下,根本不需要+号。
 Results from SQL=  ANDSQLP47\DWMOD  
  Results from C#= ANDSQLP47ANDSQLP47\DWMOD
Data in [ServerName]= ANDSQLP47
Data in [Instance] =ANDSQLP47\DWMOD
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]
";