各位大侠,国庆好!我是菜鸟,有个问题想麻烦一下大家!我现在修改一个程序,这个程序的原本功能是将选定地区的部门记录显示在页面上,代码如下所示: 
private void Notic_() 

try 

string strDepartment=(string)Session["Department"]; 
string strSql=  " select top 5 ID,vcTitle,dtSubTime,vcDepartment from tbNotic "+ 
" where vcDepartment= '"+strDepartment+" ' order by id desc"; 
DataSet myDataSet=Attorney.clsCommon.execSqlReDataSet(strSql); 
DataTable Dt=myDataSet.Tables[0]; 
int iCount=Dt.Rows.Count; 
if(iCount!=0) 

DgNotic.DataSource=Dt.DefaultView; 
DgNotic.DataBind(); 
} else 
{ } } 
catch(Exception exp) 

this.labError.Text=Attorney.clsCommon.getErrorMsg(exp.Message); 
} } 
现在我想把它改为当选定A地区或B地区或C地区部门时,程序要把这三个地区的部门记录都显示在页面上,我修改了一下上面的代码,但页面上没有显示,这是怎么回事?如下所示为所修改的代码(红色为我所加的代码): 
private void Notic_() 

try 

string strDepartment=(string)Session["Department"]; 
string strSql=  " select top 5 ID,vcTitle,dtSubTime,vcDepartment from tbNotic "+ 
" where vcDepartment= '"+strDepartment+" ' order by id desc"; 
if((strDepartment=="A地")   ¦ ¦   (strDepartment=="B地")  ¦ ¦ (strDepartment=="C地")) 
strSql+=" and vcDepartment= 'A地 'and vcDepartment= 'B地 'and vcDepartment= 'C地 '"; 
else strSql+=" and vcDepartment= '"+strDepartment+" ' "; 
DataSet myDataSet=Attorney.clsCommon.execSqlReDataSet(strSql); 
DataTable Dt=myDataSet.Tables[0]; 
int iCount=Dt.Rows.Count; 
if(iCount!=0) 

DgNotic.DataSource=Dt.DefaultView; 
DgNotic.DataBind(); 
} else 
{ } } 
catch(Exception exp) 

this.labError.Text=Attorney.clsCommon.getErrorMsg(exp.Message); 
} }

解决方案 »

  1.   

    if((strDepartment=="A地")   ¦ ¦   (strDepartment=="B地")  ¦ ¦ (strDepartment=="C地"))  
         strSql += " or vcDepartment=  'A地' or vcDepartment=  'B地' or vcDepartment=  'C地'"; 
    else 
         strSql += " and vcDepartment=  '" + strDepartment+"' ";有2个问题,1是and-->or,2是,你的比较字串里面有空格,要细心哦
      

  2.   

    晕,错鸟
    strSql += " and ( vcDepartment=  'A地' or vcDepartment=  'B地' or vcDepartment=  'C地')"; 
      

  3.   

    晕,确实,and要改为or,但改过以后,还是不行,页面上没有显示任何数据,很简单的一个问题,郁闷了