Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.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_Sql Server - Fatal编程技术网

C# 子查询返回了多个值。。查询C异常

C# 子查询返回了多个值。。查询C异常,c#,sql,sql-server,C#,Sql,Sql Server,我使用内部联接对数据库中的两个表进行了一个简单的查询。查询如下: Select t1.UserName,t1.Title,t1.FirstName,t1.LastName,t1.MiddleName,t1.IsActive,t1.ProgramID,t2.Email from table1 t1 inner join table2 t2 on t1.UserId = t2.UserId 该查询在SQLServerManagementStudio中执行良好,并根据需要返回行,但在VisualSt

我使用内部联接对数据库中的两个表进行了一个简单的查询。查询如下:

Select t1.UserName,t1.Title,t1.FirstName,t1.LastName,t1.MiddleName,t1.IsActive,t1.ProgramID,t2.Email
from table1 t1
inner join table2 t2 on t1.UserId = t2.UserId
该查询在SQLServerManagementStudio中执行良好,并根据需要返回行,但在VisualStudio中调试代码时,在

adapter.fill(dataset);
它引发以下异常:

子查询返回了多个值。当子查询在=、!=、=或者当子查询用作表达式时

以下是C代码片段:

string selectCmd = @"Select t1.UserName,t1.Title,t1.FirstName,t1.LastName,t1.MiddleName,t1.IsActive,t1.ProgramID,t2.Email
from table1 t1
inner join table2 t2 on t1.UserId = t2.UserId ";
DataSet dataset = new DataSet();
                   using (SqlConnection conn = new SqlConnection(MyConnString))
                   {
                       SqlDataAdapter adapter = new SqlDataAdapter();
                       adapter.SelectCommand = new SqlCommand(selectCmd, conn);
                       conn.Open();
                       adapter.Fill(dataset);
                   }

有什么建议吗??任何帮助都将不胜感激。

您的联接返回多个值,并且您正试图将这些值放入单个参数中

示例:--这是您的错误查询

     DECLARE @Test INT 
SET @Test = (SELECT ID FROM ABC A INNER JOIN XYZ X ON A.ID = X.AID)
解决方案:

     DECLARE @Test INT 
   SET @Test = (SELECT TOP 1 ID FROM ABC A INNER JOIN XYZ X ON A.ID = X.AID)

好了,伙计们,这是一个计时器工作的问题。在部署解决方案之前,必须重新启动sharepoint计时器服务。

能否发布您的C端代码,哪个调用此查询并填充数据集?选择TOP 1无法使用,因为该查询应获取满足联接条件的所有行。我将发布它@PM@MuhammadMuradHaider-这似乎是您在查看错误的代码部分。您确定异常来自此adapter.Fill语句吗?我不知道此查询如何引发此异常。它没有子查询。尝试在SQL Server上运行跟踪并查看此查询周围的活动。您在问题中看到了什么?您确定,您给出了上述问题的解决方案吗?正如我前面提到的,此查询应该获取与联接条件匹配的所有行,而不仅仅是前1行,因此这不是我问题的解决方案。