实在百思不得其解阿 ! 望赐教 !
错误如下 :
------------------------------------------------------------------------
异常详细信息: System.Data.SqlClient.SqlException: 子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。源错误: 行 641: SqlDataAdapter myDA = new SqlDataAdapter(strQuery, myConnection);
行 642: DataSet myDS = new DataSet();
行 643: myDA.Fill(myDS, "menu");
行 644:
行 645: myConnection.Close();源文件: d:\LJ\eInfo\App_Code\data\DB.cs    行: 643 
-------------------------------------------------------------------------
代码如下:#region 菜单
public DataTable getFirstMenu(string admin)
{
SqlConnection myConnection = new SqlConnection(ConfigurationSettings. AppSettings["ConnectionString"]);string strQuery;
if(admin=="0")
{
strQuery="select menuid,name,menulink from menu where fatherid=(select menuid from menu where fatherid=-1) order by seq";   
}
else
{
strQuery="select menuid,name,menulink from menu where fatherid=(select menuid from menu where fatherid=-1) and name!='系统管理' order by seq";   
}
            
try
{
myConnection.Open();SqlDataAdapter myDA = new SqlDataAdapter(strQuery, myConnection);
DataSet myDS = new DataSet();
myDA.Fill(myDS, "menu");myConnection.Close();return myDS.Tables["menu"];
}
catch (Exception err)
{
throw new Exception("获取菜单的过程中出现错误。", err);
}}

解决方案 »

  1.   

    strQuery="select menuid,name,menulink from menu where fatherid=(select menuid from menu where fatherid=-1) order by seq"; strQuery="select menuid,name,menulink from menu where fatherid=(select menuid from menu where fatherid=-1) and name!='系统管理' order by seq";  
    ========================================================================strQuery="select menuid,name,menulink from menu where fatherid in (select menuid from menu where fatherid=-1) order by seq"; strQuery="select menuid,name,menulink from menu where fatherid in (select menuid from menu where fatherid=-1) and name!='系统管理' order by seq";  
    你的select menuid from menu where fatherid=-1返回的记录是多个,不能用 =
      

  2.   

    SQL查询语句的问题 ???  查询写错了 ?? 是这样的吧 !  怎么办?
      

  3.   

    strQuery="select menuid,name,menulink from menu where fatherid=(select menuid from menu where fatherid=-1) order by seq"; strQuery="select menuid,name,menulink from menu where fatherid=(select menuid from menu where fatherid=-1) and name!='系统管理' order by seq";  
    ========================================================================strQuery="select menuid,name,menulink from menu where fatherid in (select menuid from menu where fatherid=-1) order by seq"; strQuery="select menuid,name,menulink from menu where fatherid in (select menuid from menu where fatherid=-1) and name!='系统管理' order by seq";  
    你的select menuid from menu where fatherid=-1返回的记录是多个,不能用 =================================================================================那怎么用  ?   谢谢 !
      

  4.   

    select top 1 menuid from menu where fatherid=-1