Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.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# \t在SQL查询中出现_C#_Sql - Fatal编程技术网

C# \t在SQL查询中出现

C# \t在SQL查询中出现,c#,sql,C#,Sql,我有一个查询,有大量的内部连接和左外部连接。它运行得非常完美,并在SQL Management Studio中为我提供了所需的结果。但是当我运行.cs文件时,该查询的字符串值在某些地方包括“\t”,比如在单词“internaljoin”前面。我确实检查了关键字之间的间距,所有语法都是正确的。有人知道这些“\t”是什么时候产生的吗?您可能需要再次检查cs代码中的查询,以确保您没有在任何地方使用过\t。我认为它在任何情况下都不会自动插入 使用存储过程而不是内联查询是一种很好的做法,因此您可能希望尝试

我有一个查询,有大量的内部连接和左外部连接。它运行得非常完美,并在SQL Management Studio中为我提供了所需的结果。但是当我运行.cs文件时,该查询的字符串值在某些地方包括“\t”,比如在单词“internaljoin”前面。我确实检查了关键字之间的间距,所有语法都是正确的。有人知道这些“\t”是什么时候产生的吗?

您可能需要再次检查cs代码中的查询,以确保您没有在任何地方使用过\t。我认为它在任何情况下都不会自动插入


使用存储过程而不是内联查询是一种很好的做法,因此您可能希望尝试使用存储过程来代替它。

在Visual Studio的调试器中,选项卡将显示为
\t
-这并不意味着SQL Server不理解语法,这就是调试器显示特殊字符的方式。

如果找不到制表符('\t')的来源,并且它们导致了问题,则可以在执行查询之前用空格替换它们:

var query = "SELCET * FROM MyTable";
query = query.Replace("\t", " ");

是的,多亏了ypercube和kaps。问题已经解决了。因为我将整个查询块从SQL Management studio复制到了.cs文件。我删除了带有“\t”的行,然后再次键入。

您是将查询作为存储过程运行还是在cs文件中作为内联查询运行?这不是存储过程,只是一个普通查询。请检查您是否从某个地方复制了它—意味着从任何地方复制,甚至从您自己的工作站复制—并粘贴,这些制表符可能已经引入。许多应用程序,如word/outlook,以不同的方式处理这些字符,当您从其中复制文本时,这些字符将按照默认字符编码.Yap进行转换,这要归功于ypercube和kaps。问题已经解决了。因为我将整个查询块从SQL Management studio复制到了.cs文件。我删除了那些带有“\t”的行,然后再次键入。