Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.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# SQL查询在ManagementStudio中工作,但在C中不工作#_C#_Asp.net_Ssms - Fatal编程技术网

C# SQL查询在ManagementStudio中工作,但在C中不工作#

C# SQL查询在ManagementStudio中工作,但在C中不工作#,c#,asp.net,ssms,C#,Asp.net,Ssms,我用我的软件进行查询时遇到问题 我有一个构建查询的函数,然后执行它来填充gridview。但它不断给我抛出一个异常:“多部分标识符”“无法绑定”多个列 当我在SQLManagementStudio中尝试该查询时,它运行良好。我真的不明白。这是问题所在 SELECT DISTINCT [NonConformite].[Numero], CAST ([NonConformite].[Numero] AS varchar (255)) AS Champ1, CAST ([NonConformiteD

我用我的软件进行查询时遇到问题

我有一个构建查询的函数,然后执行它来填充gridview。但它不断给我抛出一个异常:“多部分标识符”“无法绑定”多个列

当我在SQLManagementStudio中尝试该查询时,它运行良好。我真的不明白。这是问题所在

SELECT DISTINCT [NonConformite].[Numero],
CAST ([NonConformite].[Numero] AS varchar (255)) AS Champ1, 
CAST ([NonConformiteDonneesComplementaires177_4].[Texte2] AS varchar (255)) AS Champ2, 
CAST (NonConformite.dbo.[NonConformiteStatut].[Libelle] AS varchar (255)) AS Champ3, 
CAST ([NonConformite].[Description] AS varchar (255)) AS Champ4 FROM [NonConformite].[dbo].[NonConformite]  
LEFT JOIN NonConformite.dbo.[NonConformiteDonneesComplementaires] as NonConformiteDonneesComplementaires177_4 
ON [NonConformite].[Numero] = [NonConformiteDonneesComplementaires177_4].[Numero] 
LEFT JOIN NonConformite.dbo.[NonConformiteStatut] 
ON [NonConformite].[CpteurStatut] = NonConformite.dbo.[NonConformiteStatut].[Cpteur]
我使用Windows 7 Pro、Visual Studio 2008、SQL Server 2008和ASP.NET C#


谢谢你的回答

我将首先将查询分解为别名,看看这是否有帮助;除非您有意进行跨数据库工作(通常是个坏主意),否则请删除数据库标识符,只使用当前数据库:

SELECT DISTINCT nc.[Numero],
CAST (nc.[Numero] AS varchar (255)) AS Champ1, 
CAST (dc.[Texte2] AS varchar (255)) AS Champ2, 
CAST (st.[Libelle] AS varchar (255)) AS Champ3, 
CAST (nc.[Description] AS varchar (255)) AS Champ4
FROM dbo.[NonConformite] nc
LEFT JOIN dbo.[NonConformiteDonneesComplementaires] dc
ON nc.[Numero] = dc.[Numero] 
LEFT JOIN dbo.[NonConformiteStatut] st
ON nc.[CpteurStatut] = st.[Cpteur]

尝试运行以下命令,并从底部向上删除注释,直到确定问题所在

SELECT *
--DISTINCT [NonConformite].[Numero],
--CAST ([NonConformite].[Numero] AS varchar (255)) AS Champ1, 
--CAST ([NonConformiteDonneesComplementaires177_4].[Texte2] AS varchar (255)) AS Champ2, 
--CAST (NonConformite.dbo.[NonConformiteStatut].[Libelle] AS varchar (255)) AS Champ3, 
--CAST ([NonConformite].[Description] AS varchar (255)) AS Champ4
FROM [NonConformite].[dbo].[NonConformite]  
-- LEFT JOIN NonConformite.dbo.[NonConformiteDonneesComplementaires] as NonConformiteDonneesComplementaires177_4 
    ON [NonConformite].[Numero] = [NonConformiteDonneesComplementaires177_4].[Numero] 
-- LEFT JOIN NonConformite.dbo.[NonConformiteStatut] 
    ON [NonConformite].[CpteurStatut] = NonConformite.dbo.[NonConformiteStatut].[Cpteur]

这很难理解。。。您知道您可以使用别名帮助使查询正常,是吗?您是否可以尝试使用此查询创建一个过程,并尝试从代码执行该过程。添加别名使程序更易于理解,您所使用的方法存在一些歧义,这会引发异常。根据@Marc Gravell的说法,跨数据库工作将是此类问题的主要原因幸运的是,我必须做跨数据库工作,因为我正在将标准应用程序转换为web应用程序。我必须使用相同的数据库。@马克:前开发人员为一个应用程序制作了8个数据库,其中一些共享表名。我尝试了您的查询,现在它在VisualStudio中运行良好(我添加了DB名称)。非常感谢。