|
发表于 2020-5-5 20:15:01
|
显示全部楼层
刚才发的匆忙了,有些垃圾代码,现在把那些没用的代码去掉了!
你可以再看一下,加点注释!
//申明DB连接对象
public OleDbConnection cn=new OleDbConnection();
//执行完下面的函数后,这里的值就是你要的所有的ChildID!!!
public ArrayList aryAllChildID=new ArrayList();
public void GetAllChildID(string paID)
{
//将每个ID都放到这里来!
aryAllChildID.Add(paID)
//当然在这里你可以根据传入的ID,直接对DB进行删除操作了!记得把这个ID记下来,下面还要用它来查找它有否子ID了!
..........delete from table_name where id=paid
..........
string strTmpRootID=paID; //不再这里进行删除操作,就不要这句!
//存放sql语句
string sql="SELECT ID FROM TABLE_NAME WHERE PARENTID='"+paID+"'";
cn.ConnectionString="Provider=...................";
//打开连接
cn.Open();
//申明Command对象
OleDbCommand oCmd=new OleDbCommand(sql,cn);
//申明存放返回的数据集对象
OleDbDataReader oDr=new OleDbDataReader();
//获得返回数据
oDr=oCmd.ExecuteReader(CommandBehavior.CloseConnection);
if(oDr.HasRows)
{
while(oDr.Read())
{
string strTmpID=Convert.ToString((oDr["ID"]==System.DBNull.Value)?String.Empty:oDr["ID"]);
//如果不空,就遍历,这里如果你的DB,定义id+parentid为PK,就不需要下面条件来判断了!
if(strTmpID!=String.Empty)
{
GetAllChildID(strTmpID);
}
}
}
} |
|