string qq = ds.Tables[0].Rows[0]["finding"].ToString();
        if (qq == "True")
        {
            CheckBoxList2.Items[2].Selected = true;
        }
        else
        {
            CheckBoxList2.Items[2].Selected = false;
        }
        string qqq = ds.Tables[0].Rows[0]["equipsfind"].ToString();
        if (qqq == "True")
        {
            CheckBoxList2.Items[3].Selected = true;
        }
        else
        {
            CheckBoxList2.Items[3].Selected = false;
        }
上面的代码是一个小系统的权限配置时,我要从权限表中读取已经设置的权限值,值为1时,CheckBoxList中对应框就打勾,值为0时,CheckBoxList中对应框就不打勾。但是我在调试的过程中发现,无论值是1还是0,qq和qqq的值都是True,好象只要qq和qqq有值存在,就是True。这个问题要怎么解决,请高手指点下!

解决方案 »

  1.   

    这个问题我自己解决了,因为没办法结帖,所以在增加个问题,因为我设计的权限有8个,所以我没做循环,就一个一个的判断了,如果要做成循环的形式,代码应该怎么写呢?就是判断数据表里的表示权限列的数据,如果是1,checkbox就打勾,是0就不打勾。用循环要怎么写?请高手指点下!
      

  2.   

    你是不是所有权限值都查询出来在DstaTable里面了?
      

  3.   


    为什么不:bool flag= Convert.ToBoolean(ds.Tables[0].Rows[0]["finding"]);
    CheckBoxList2.Items[2].Selected = flag;
    flag= Convert.ToBoolean(ds.Tables[0].Rows[0]["equipsfind"]);
    CheckBoxList2.Items[3].Selected = flag;
      

  4.   


    你应该这样:
     
    public class LicenseProvider
    {
       protected string m_licenseID=null;//唯一的权限码
       protected bool m_allowOpen=false;
       protected bool m_allowEdit=false;
       //其它的权限变量   public LicenseProvider(string licenseID){
         m_licenseID=licenseID;
         this.SetLicense();
       }    //从数据库用SqlDataReader获取权限设置
       protected void SetLicense(){... m_allowOpen = dr.GetBoolean(0);m_allowEdit=dr.GetBoolean(1);...}   public string LicenseID{get{return m_licenseID}}
       public bool AllowOpen{get{return m_allowOpen;}}
       public bool AllowEdit{get{return m_allowEdit;}}
       //...其它的6个权限属性
    }
    设置权限时:LicenseProvider lp=new LicenseProvider("yourLicenseID");
    CheckBoxList2.Items[2].Selected = lp.AllowOpen;
    CheckBoxList2.Items[3].Selected = lp.AllowEdit;
    //...