C#無限欄目分級程序代碼分享 好東西第2/3頁
更新時間:2006年12月28日 00:00:00 作者:
C#無限欄目分級程序代碼分享[3] 核心代碼放送之清空、排序
using System;
using System.Data;
namespace catalog
{
/// <summary>
/// action 的摘要說明。
/// </summary>
public class action:db
{
private static bool[] ShowLine_={false,false,false,false,false,false,false,false,false,false};
private static System.Collections.ArrayList ShowLine=new System.Collections.ArrayList(ShowLine_);
public action()
{
}
public void deleteAllCatalog(string table)
{
string sql="delete from " + table;
base.exesql(sql);
}
public int downClass(string table,int classid)
{
string sql;
sql="select * from " + table + " where classid=" + classid;
int orderid=0,rootid=0,previd=0,nextid=0,depth=0,parentid=0,child=0;
IDataReader dr=base.getdr(sql);
if (dr.Read() )
{
orderid=(int)dr["orderid"];
rootid=(int)dr["rootid"];
previd=(int)dr["previd"];
nextid=(int)dr["nextid"];
depth=(int)dr["depth"];
parentid=(int)dr["parentid"];
child=(int)dr["child"];
}
else
{
dr.Close();
dr.Dispose();
return 1;//要下降排序的欄目不存在
}
dr.Close();
dr.Dispose();
if (nextid==0)
return 2;//要下降排序的欄目下面沒有欄目,無法被下降
if (nextid==0 && previd==0)
return 3;//要下降排序的欄目的這一級別只有它一個,沒辦法被提升
return upClass(table,nextid);
}
#region 向上移動欄目
public int upClass(string table,int classid)
{
string sql;
//先得到要提升的classid的欄目信息
sql="select * from " + table + " where classid=" + classid;
int orderid=0,rootid=0,previd=0,nextid=0,depth=0,parentid=0,child=0;
IDataReader dr=base.getdr(sql);
if (dr.Read() )
{
orderid=(int)dr["orderid"];
rootid=(int)dr["rootid"];
previd=(int)dr["previd"];
nextid=(int)dr["nextid"];
depth=(int)dr["depth"];
parentid=(int)dr["parentid"];
child=(int)dr["child"];
}
else
{
dr.Close();
dr.Dispose();
return 1;//要提升排序的欄目不存在
}
dr.Close();
dr.Dispose();
if (previd==0)
return 2;//要提升排序的欄目上面沒有欄目,無法被提升
if (nextid==0 && previd==0)
return 3;//要提升排序的欄目的這一級別只有它一個,沒辦法被提升
//得到上面一個欄目的信息
sql="select * from " + table + " where classid=" + previd;
int orderid_=0,rootid_=0,previd_=0,nextid_=0,depth_=0,parentid_=0,child_=0;
dr=base.getdr(sql);
if (dr.Read() )
{
orderid_=(int)dr["orderid"];
rootid_=(int)dr["rootid"];
previd_=(int)dr["previd"];
nextid_=(int)dr["nextid"];
depth_=(int)dr["depth"];
parentid_=(int)dr["parentid"];
child_=(int)dr["child"];
}
else
{
dr.Close();
dr.Dispose();
return 4;//要提升排序的欄目的上面的欄目不存在,被非法刪除
}
dr.Close();
dr.Dispose();
//把原來previd=classid的換為previd=previd
sql="update "+ table + " set previd=" + previd + " where previd=" + classid;
base.exesql(sql);
//把原來nextid=previd換為classid
sql="update "+ table + " set nextid=" + classid + " where nextid=" + previd;
base.exesql(sql);
//處理提升的欄目nextid->previd,previd->previd_,orderid->orderid_
sql="update "+ table + " set nextid=" + previd + ",previd=" + previd_ + " where classid=" + classid;
base.exesql(sql);
int child_num=0,child_num_=0;//兩個欄目的子欄目數(shù)目
string[] temp;
string children,children_;
children="0";
children_="0";
if (child>0)
{
children=getChildren(table,classid);
temp=children.Split('','');
child_num=temp.Length;
}
if (child_>0)
{
children_=getChildren(table,previd);
temp=children_.Split('','');
child_num_=temp.Length;
}
//處理上一個欄目nextid->nextid,previd->classid
sql="update "+ table + " set nextid=" + nextid + ",previd=" + classid + " where classid=" + previd;
base.exesql(sql);
sql="update " + table + " set orderid=orderid - "+ (child_num_+1) + " where classid in ("+ (classid + "," + children) +")";
base.exesql(sql);
sql="update " + table + " set orderid=orderid + "+ (child_num+1) + " where classid in ("+ (previd + "," + children_) +")";
base.exesql(sql);
return 0;
}
#endregion
查看原文:http://ent.omeweb.com/book/content.aspx?id=1804
相關(guān)文章
c#生成excel示例sql數(shù)據(jù)庫導出excel
這篇文章主要介紹了c#操作excel的示例,里面的方法可以直接導出數(shù)據(jù)到excel,大家參考使用吧2014-01-01C#使用泛型方法實現(xiàn)操作不同數(shù)據(jù)類型的數(shù)組
這篇文章主要為大家詳細介紹了C#如何使用一個泛型方法對不同類型的數(shù)組進行操作,文中的示例代碼講解詳細,感興趣的小伙伴可以學習一下2024-02-02c#創(chuàng)建vc可調(diào)用的com組件方法分享
本文詳細闡述如何用C#創(chuàng)建一個COM組件,并能用VC6.0等調(diào)用,大家參考使用2013-12-12