首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

子查询返回的值不止一个,该如何解决

2012-05-03 
子查询返回的值不止一个System.Data.SqlClient.SqlException: 子查询返回的值不止一个。当子查询跟随在 、!

子查询返回的值不止一个
System.Data.SqlClient.SqlException: 子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。

行 78: cmd.CommandType = ct;
行 79: cmd.Parameters.AddRange(paras);
行 80: res = cmd.ExecuteNonQuery();
行 81: }
行 82: return res;

存储过程:
。。。
ALTER PROCEDURE [dbo].[New_Delect] 
@id int
AS
BEGIN
-- 先删除评论意见
delete pingrun where newsid=@id
-- 再删除新闻
delete News where id=@id
END

应该怎么写才对?

[解决办法]
不是这一段的,这一段没有子查询.
[解决办法]
如果子查询返回的值不止一个,那你就不能用:

select * from tb where col1=(你的那个子查询)
而要用:
select * from tb where col1 in (你的那个子查询)

[解决办法]

SQL code
select * from tb where col1=ANY(子查询)
[解决办法]
探讨
还有个中间部分: 
public bool Delete(string dwID) 

//Todo:删除 
bool flag = false; 
String cmdText = "存储过程名"; 
SqlParameter[] paras = new SqlParameter[]{ 
new SqlParameter("@ID",ID) 
}; 
int res = sqlhelper.ExecuteNonQuery(cmdText, paras, CommandType.StoredProcedure); 
if (res…

热点排行