/********************************************************************************** *
程序说明: 生成静态页面类(复杂型.有参数) *
创建日期: 2009.6.13 *
修改日期: 2010.12.18 *
程序制作: agui *
联系方式: mailto:[email protected] *
********************************************************************************/ using
System; using System.Collections; using
System.Collections.Generic; using System.Text; using
System.Data; using PlugNT.Safe; using
PlugNT.Database.Common; using PlugNT.Database.Common.Simple; using
PlugNT.Custom; using PlugNT.Cms.Model;
namespace PlugNT.Cms.DAL { ///
<summary> ///
无限极分类(由于字段的长度只能嵌套25层,且只能用于少量重要型的数据存储) ///
</summary> public class
Category {
private static string
currTableName = WebConfig.TablePrefix + "category";
#region 获取
///
<summary> ///
获取clsno ///
</summary> ///
<param
name="clsno"></param>
///
<returns></returns>
public string GetClsno(int
id)
{
StringBuilder strSql = new
StringBuilder();
strSql.Append("select
top 1 clsno from " +
currTableName);
strSql.Append(" where id=" +
id.ToString());
return Convert.ToString(DbHelper.GetSingle(strSql.ToString()));
}
///
<summary> ///
获取clslist ///
</summary> ///
<param
name="clsname"></param>
///
<returns></returns>
public string GetClslistByName(string
clsname)
{
StringBuilder strSql = new
StringBuilder();
strSql.Append("select top 1 clslist from " +
currTableName);
strSql.Append(" where clsname=‘" + StringHelper.SqlFilter(clsname) +
"‘");
return
Convert.ToString(DbHelper.GetSingle(strSql.ToString()));
}
///
<summary> ///
获取clslist ///
</summary> ///
<param
name="clsno"></param>
///
<returns></returns>
public string GetClslistByNo(string
clsno)
{
StringBuilder strSql = new
StringBuilder();
strSql.Append("select top 1 clslist from " +
currTableName);
strSql.Append(" where clsno=‘" + StringHelper.SqlFilter(clsno) +
"‘");
return
Convert.ToString(DbHelper.GetSingle(strSql.ToString()));
}
///
<summary> ///
根据父级编号得到clsname ///
</summary> ///
<param
name="clsno"></param>
///
<returns></returns>
public string GetClsnameByParentNo(string
clsno)
{
StringBuilder strSql = new
StringBuilder();
strSql.Append("Select top 1 clsname From " +
currTableName);
strSql.Append(" Where clsparentno=‘" + StringHelper.SqlFilter(clsno) +
"‘");
return
DbHelper.GetSingle(strSql.ToString()).ToString();
}
///
<summary> ///
得到父级clsno ///
</summary> ///
<param
name="clsno"></param>
///
<returns></returns>
public string GetParentClsno(string
clsno)
{
StringBuilder strSql = new
StringBuilder();
strSql.Append("Select top 1 clsparentno From " +
currTableName);
strSql.Append(" Where clsno=‘" + StringHelper.SqlFilter(clsno) +
"‘");
return
DbHelper.GetSingle(strSql.ToString()).ToString();
}
///
<summary> ///
得到模型 ///
</summary> ///
<param
name="clsno"></param>
///
<returns></returns>
public CategoryInfo GetCategoryInfo(string
clsno)
{
DataTable dt =
GetCategoryTable(clsno);
CategoryInfo
model=null;
if(dt.Rows.Count>0)
{
DataRow
dr=dt.Rows[0];
model=new
CategoryInfo();
model.id=(int)dr["id"];
model.clsno=dr["clsno"].ToString();
model.clsname=dr["clsname"].ToString();
model.clslist=dr["clslist"].ToString();
model.clsparentno=dr["clsparentno"].ToString();
model.clslistlen=Int32.Parse(dr["clslistlen"].ToString());
}
return model;
}
///
<summary> ///
得到类别表 ///
</summary> ///
<param
name="clsno"></param>
///
<returns></returns>
public DataTable GetCategoryTable(string
clsno)
{
StringBuilder strSql = new
StringBuilder();
strSql.Append("Select top 1 * From " +
currTableName);
strSql.Append(" Where clsno=‘" + StringHelper.SqlFilter(clsno) +
"‘");
DataTable dt =
DbHelper.TabQuery(strSql.ToString());
return dt;
} #endregion
#region 添加,修改,删除操作
///
<summary> ///
添加一个菜单项 ///
</summary> ///
<param
name="model"></param>
///
<returns></returns>
public bool Add(CategoryInfo
model)
{
StringBuilder strSql = new
StringBuilder();
strSql.Append("insert into " +
currTableName);
strSql.Append(" (clsno,clsname,clslist,clsparentno,clslistlen)");
strSql.Append(" values
(");
strSql.Append("‘" + StringHelper.SqlFilter(model.clsno) +
"‘,");
strSql.Append("‘" + StringHelper.SqlFilter(model.clsname) +
"‘,");
strSql.Append("‘" + StringHelper.SqlFilter(model.clslist) +
"‘,");
strSql.Append("‘" + StringHelper.SqlFilter(model.clsparentno) +
"‘,");
strSql.Append(" " +model.clslistlen );
strSql.Append(")");
return (DbHelper.ExecuteSql(strSql.ToString()) > 0) ? true :
false; }
///
<summary> ///
编辑一个菜单项 ///
</summary> ///
<param
name="model"></param>
/// <param
name="isSubModel">是否下级菜单</param>
///
<returns></returns>
public bool Update(CategoryInfo model, bool
isSubModel)
{
StringBuilder strSql = new
StringBuilder();
strSql.Append("update " +
currTableName);
strSql.Append(" set
");
if
(!isSubModel)
{
strSql.Append("clsname=‘" + StringHelper.SqlFilter(model.clsname) +
"‘,");
strSql.Append("clsparentno=‘" + StringHelper.SqlFilter(model.clsparentno)
+
"‘,");
}
strSql.Append("clslist=‘" + StringHelper.SqlFilter(model.clslist) +
"‘,");
strSql.Append("clslistlen=" + model.clslistlen
);
strSql.Append(" where clsno=‘" + StringHelper.SqlFilter(model.clsno) + "‘
");
//同步更新子菜单项
DataTable dt =
GetOrderSubList(model.clsno);
if (dt.Rows.Count >
0)
{
foreach (DataRow dr in
dt.Rows)
{
CategoryInfo imodel = new
CategoryInfo();
string Subclslist = model.clslist + dr["clsno"].ToString().Trim() +
",";
imodel.clslist =
Subclslist;
imodel.clslistlen = model.clslistlen +
1;
Update(imodel,true);
}
}
return (DbHelper.ExecuteSql(strSql.ToString()) > 0) ? true :
false; }
///
<summary> ///
删除菜单项 ///
</summary> ///
<param
name="clsno"></param>
///
<returns></returns>
public bool Delete(string
clsno)
{
StringBuilder strSql = new
StringBuilder();
DataTable dt =
GetListRow(clsno);
if (dt.Rows.Count >
0)
{
strSql.Append("Delete From " +
currTableName);
strSql.Append(" where clslist like ‘" +
dt.Rows[0]["clslist"].ToString().Trim() +
"%‘");
}
return (DbHelper.ExecuteSql(strSql.ToString()) > 0) ? true :
false; }
#endregion
#region 获取列表
///
<summary> ///
判断一个父类编号是否存在 ///
</summary> public bool
ParentExists(string clsno)
{
StringBuilder strSql = new
StringBuilder();
strSql.Append("select count(1) from " +
currTableName);
strSql.Append(" where clsparentno=‘" + StringHelper.SqlFilter(clsno) +
"‘");
return
DbHelper.Exists(strSql.ToString());
}
///
<summary> ///
获取全部菜单名及列表 ///
</summary> ///
<returns></returns>
public DataTable GetList()
{
StringBuilder strSql = new
StringBuilder();
strSql.Append("select id,clsno,clsname,clslist,clsparentno,clslistlen from
" +
currTableName);
return
DbHelper.TabQuery(strSql.ToString());
//clsno,clsname,clslist,clslistlen,indexfile,listfile,showfile,createpath,ismap
}
///
<summary> ///
获取菜单列表(排序) ///
</summary> ///
<returns></returns>
public DataTable
GetOrderList()
{
StringBuilder strSql = new
StringBuilder();
strSql.Append("select id,clsno,clsname,clslist,clsparentno,clslistlen from
" +
currTableName);
strSql.Append(" Order By clslist Asc"); // Order By clsorder Asc,clslist
Asc
return
DbHelper.TabQuery(strSql.ToString());
}
///
<summary> ///
获取clsno的包含菜单列表 ///
</summary> ///
<param
name="clsno"></param>
///
<returns></returns>
public DataTable GetListRow(string
clsno)
{
StringBuilder strSql = new
StringBuilder();
strSql.Append("select top 1 clsno,clslist,clslistlen from " +
currTableName);
strSql.Append(" where clsno=‘" + StringHelper.SqlFilter(clsno) + "‘
");
return
DbHelper.TabQuery(strSql.ToString());
}
///
<summary> ///
获取该菜单项的所有子菜单项(因为clslist在表中都不同所以按clsorder排序无效果)
/// </summary> ///
<param
name="clsno"></param>
///
<returns></returns>
public DataTable GetOrderSubList(string
clsno)
{
StringBuilder strSql = new
StringBuilder();
strSql.Append("select id,clsno,clsname,clslist,clsparentno,clslistlen from
" +
currTableName);
strSql.Append(" where clsparentno=‘" + StringHelper.SqlFilter(clsno) + "‘
");
strSql.Append(" Order By clslist
Asc");
return
DbHelper.TabQuery(strSql.ToString());
}
#endregion
#region contact
me public string
Help()
{
return
@"mailto:[email protected]";
}
#endregion }
} |