一个表有2个字段表结构如下
packid(当前ID) packidtemp(上级ID)
12 14
14 15
15怎么样获取当前ID对应的最高ID
packid(当前ID) packidtemp(上级ID)
12 14
14 15
15怎么样获取当前ID对应的最高ID
解决方案 »
- winform怎么隐藏子页面左上角的图标
- 几个小问题请教
- vs2008打包一个外部exe文件,并要让其在安装时自动运行,能做到吗?
- c#中,把picturebox中的图片保存到mysql数据库中的bolb字段中,请高人指点。
- 那位帮写一个简单的C#函数,将货币转换成分cents
- 怎样获取datalist里hyperlink上绑定的两个拼接时间,并且把获取的两个时间跟从数据库查询到的另个时间比较
- 简单问题,关于数据库打包问题!
- 我想用C#写游戏的辅助程序,请问
- 急!请问各位高手,怎么用vs2005正确的运行asp格式的文件啊?
- windows 8 RT有开发蓝牙和API吗
- 求项目成本核算的文档一份
- C#中什么类型对应C++中的LPWSTR(wchar_t *)?
packid(当前ID) packidtemp(上级ID)
12 14
14 15
15怎么样获取当前ID对应的最高ID如果我传入一个12 我就要根据12找到他对应的packidtemp 在根据packidtemp获取到的值到packid中找是否存在,以此类推 。一直到packid对应的值为空,再把最后取到的packid放入临时表,也就是15
你的packid是自增列吧
insert into #temp
select 1,0 union all
select 2,1 union all
select 3,2 union all
select 4,7 union all
select 5,3 select * from #tempdeclare @resultID int
declare @curID int
set @curID=5
while(exists(select 1 from #temp where id=@curID))
begin
select @curID=parentid,@resultID=id from #temp where id=@curID
end
select @curID,@resultID
int _PackID = 0;
private void GetPackID(int packID, DataTable table)
{
foreach (DataRow drow in table.Rows)
{
if (Convert.ToInt32(drow["packid"].ToString()) == packID)
{
if (Convert.ToInt32(drow["packidtemp"].ToString()) == 0)
{
_PackID = packID;
}
else
{
GetPackID(Convert.ToInt32(drow["packidtemp"].ToString()), table);
}
}
}
} private void button2_Click(object sender, EventArgs e)
{
DataTable table = new DataTable();
table.Columns.Add("packid");
table.Columns.Add("packidtemp");
table.Rows.Add(12, 14);
table.Rows.Add(14, 15);
table.Rows.Add(15, 0); GetPackID(12, table);
Console.WriteLine(_PackID);
}结果:
15
{
foreach (DataRow drow in table.Rows)
{
if (Convert.ToInt32(drow["packid"].ToString()) == packID)
{
if (Convert.ToInt32(drow["packidtemp"].ToString()) == 0)
{
_PackID = packID;
return; //退出
}
else
{
GetPackID(Convert.ToInt32(drow["packidtemp"].ToString()), table);
}
}
}
}
2.软后开始递归
public string GetTopId(string id,DataTable dt)
{
DataRow row = dt.select("packidtemp=" + id)
if(row.length !=0 || row !=null)
return GetTopId(row["packid"].toString(),dt);
else
return id;
}