大家帮看下,(PID+"=0")是什么意思 下面是一个自定义函数 
 public static void GenerateTreeForDropDownList(DropDownList dpl, string tblName,string CateName,string CateID,string PID,bool IsClearOldItems) 
    { 
        if (IsClearOldItems) dpl.Items.Clear(); 
        //DataTable objTable = MyConst.MyGateway.DbHelper.Select("Select * From " + tblName, null).Tables[0]; 
        DataTable objTable = MyGateway.FromCustomSql("Select * From " + tblName).ToDataSet().Tables[0]; 
        if (objTable.Rows.Count > 0) 
        { 
            DataRow[] objRows=objTable.Select(PID+"=0");///就是这个地方,我不懂 
            foreach (DataRow objRow in objRows) 
            { 
                dpl.Items.Add(new ListItem("╋" + objRow[CateName].ToString(), objRow[CateID].ToString())); 
                GenerateChildForDropDownList(dpl, objTable, CateName,CateID, PID, objRow[CateID].ToString(), "│ ├"); 
            } 
        } 
    }应该是传的参数如果传进来的是name 那么是不是就应该是(name+"=0")?那也不对吧,pid参数是string 如果这样应该是(name+"=‘0’")?小弟不明白!还请高手指点

解决方案 »

  1.   

     
    DataRow[] objRows=objTable.Select(PID+"=0");///就是这个地方,我不懂  
    //这句话的意思是搜索这个集合里的,条件是PID=0;
    //就是拼串
    //PID是字符串
    //"=0"也是字符串
    //加起来还是字符串。
    //就是条件了
      

  2.   


    DataRow[] objRows=objTable.Select("name=张三");///这个可以
    //如果name是个动态的变量
    DataRow[] objRows=objTable.Select(name+"=张三");///这样就可以了
      

  3.   

    这个函数参数PID,其含义应该是数据库中一个字段的名字,比如我传进来的PID值为Table_A那么DataRow[] objRows=objTable.Select(PID+"=0");///
    这一句就是说在objTable中检索Table_A这一列为0的行Select中要求的参数是一个表达式,用字符串来说明一个简单逻辑,表达式的语法并不完全等于SQL语句的语法你的字段名是参数传进来的,所以这里当然用PID要补充的逻辑是“=0”,这不是单个字符,所以当然用双引号。如果是"=‘0’“的话,那就说明这个列的类型必须是字符型了。但实际上它有可能是int等数据型的。