子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。问题急求解!

plmokn12348 2011-08-05 06:24:33
子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

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

源错误:


行 516: catch (System.Data.SqlClient.SqlException ex)
行 517: {
行 518: throw new Exception(ex.Message);
行 519: }
行 520: return ds;


源文件: E:\考勤程序开发\DUTY\Duty\DBUtility\DbHelperSQL.cs 行: 518

堆栈跟踪:


[Exception: 子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。]
Maticsoft.DBUtility.DbHelperSQL.Query(String SQLString) in E:\考勤程序开发\DUTY\Duty\DBUtility\DbHelperSQL.cs:518
Duty.DAL.DutyCacl.GetList(String strWhere1, String strWhere2) in E:\考勤程序开发\DUTY\Duty\DAL\DutyCacl.cs:255
Duty.BLL.DutyCacl.GetList(String strWhere1, String strWhere2) in E:\考勤程序开发\DUTY\Duty\BLL\DutyCacl.cs:95
Duty.Web.Police.List.Button2_Click(Object sender, EventArgs e) in E:\考勤程序开发\DUTY\Duty\Web\Duty\Police\List.aspx.cs:2696
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +118
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +112
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563


...全文
1076 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
insus 2011-08-06
  • 打赏
  • 举报
回复
试试,把"="号改为"IN"

如SELECT [col1],[col2],... FROM [T1] WHERE [id] = (SELECT [id] FROM [T2] WHERE ...)
改为
SELECT [col1],[col2],... FROM [T1] WHERE [id] IN (SELECT [id] FROM [T2] WHERE ...)
dongt1 2011-08-06
  • 打赏
  • 举报
回复
不要写try...catch。进行调试。问题应该明朗了。
阿非 2011-08-05
  • 打赏
  • 举报
回复
简单的解决办法是 top 1

或者 max()
AcHerat 2011-08-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 plmokn12348 的回复:]
数据库有问题是吗?可是一开始可以呀,做了行转列修改后就这样了,不知是拿出的问题?那位楼主说明一下!!万分感谢 !我是菜鸟,还没入门!
[/Quote]

楼主你也说了做了行转列,那么你现在的SQL并不一定适用,需要去重新按需求来写SQL语句。
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 plmokn12348 的回复:]
数据库有问题是吗?可是一开始可以呀,做了行转列修改后就这样了,不知是拿出的问题?那位楼主说明一下!!万分感谢 !我是菜鸟,还没入门!
[/Quote]

不要胡乱写try...catch。你这样写,就无法借助于vs进行调试。

当真正调试时,vs调试器会中断在出现异常的行上,并且你可以在调试窗口或者命令窗口打印出所执行的sql语句。你应该贴出来这个语句,在这个或者SQL Server论坛上去问。

再次强调,为了保证开发效率,一定不要胡乱滥用try...catch。
plmokn12348 2011-08-05
  • 打赏
  • 举报
回复
数据库有问题是吗?可是一开始可以呀,做了行转列修改后就这样了,不知是拿出的问题?那位楼主说明一下!!万分感谢 !我是菜鸟,还没入门!
阿非 2011-08-05
  • 打赏
  • 举报
回复
sql 有问题

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧