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行,因此这不是我问题的解决方案。