大家帮看下,(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’")?小弟不明白!还请高手指点
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’")?小弟不明白!还请高手指点
DataRow[] objRows=objTable.Select(PID+"=0");///就是这个地方,我不懂
//这句话的意思是搜索这个集合里的,条件是PID=0;
//就是拼串
//PID是字符串
//"=0"也是字符串
//加起来还是字符串。
//就是条件了
DataRow[] objRows=objTable.Select("name=张三");///这个可以
//如果name是个动态的变量
DataRow[] objRows=objTable.Select(name+"=张三");///这样就可以了
这一句就是说在objTable中检索Table_A这一列为0的行Select中要求的参数是一个表达式,用字符串来说明一个简单逻辑,表达式的语法并不完全等于SQL语句的语法你的字段名是参数传进来的,所以这里当然用PID要补充的逻辑是“=0”,这不是单个字符,所以当然用双引号。如果是"=‘0’“的话,那就说明这个列的类型必须是字符型了。但实际上它有可能是int等数据型的。