You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
493 lines
26 KiB
493 lines
26 KiB
using System;
|
|
using System.Data;
|
|
using System.Text;
|
|
using System.Data.SqlClient;
|
|
using OT.IDAL;
|
|
using DBUtility;//Please add references
|
|
using System.Collections.Generic;
|
|
namespace OT.SQLServerDAL
|
|
{
|
|
/// <summary>
|
|
/// 資料訪問類:OTB_SYS_ModuleList
|
|
/// </summary>
|
|
public partial class OTB_SYS_ModuleList : IOTB_SYS_ModuleList
|
|
{
|
|
public OTB_SYS_ModuleList()
|
|
{ }
|
|
#region Method
|
|
/// <summary>
|
|
/// 是否存在該記錄
|
|
/// </summary>
|
|
public bool Exists( string ModuleID)
|
|
{
|
|
int rowsAffected;
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("select count(1) from OTB_SYS_ModuleList");
|
|
strSql.Append(" where ModuleID=@ModuleID ");
|
|
SqlParameter[] parameters = {
|
|
new SqlParameter("@ModuleID", SqlDbType.VarChar,10)
|
|
};
|
|
parameters[0].Value = ModuleID;
|
|
|
|
return DbHelperSQL.Exists(strSql.ToString(), parameters);
|
|
//int result = DbHelperSQL.RunProcedure("OSP_OTB_SYS_ModuleList_Exists", parameters, out rowsAffected);
|
|
//if (result == 1)
|
|
//{
|
|
// return true;
|
|
//}
|
|
//else
|
|
//{
|
|
// return false;
|
|
//}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 增加一條資料
|
|
/// </summary>
|
|
public bool Add(OT.Model.OTB_SYS_ModuleList model)
|
|
{
|
|
//新增前先將排序欄位值往前或往後移動,才能新增值在指定排序
|
|
List<CommandInfo> UpdateRow = new List<CommandInfo>(); //宣告LIST清單
|
|
StringBuilder strSql1 = new StringBuilder();
|
|
strSql1.Append(" DECLARE @strSQL NVARCHAR(1000) ");
|
|
strSql1.Append(" BEGIN ");
|
|
strSql1.Append(" PRINT @NewOrderByValue ");
|
|
strSql1.Append(" PRINT @OldOrderByValue ");
|
|
strSql1.Append(" IF CONVERT(INT, @NewOrderByValue) > CONVERT(INT,@OldOrderByValue) ");
|
|
strSql1.Append(" BEGIN ");
|
|
strSql1.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
|
|
strSql1.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) - 1 ");
|
|
strSql1.Append(" WHERE '+@FeildName+' >= '+@OldOrderByValue + ' AND '+@FeildName+'<='+@NewOrderByValue+' ' ");
|
|
strSql1.Append(" IF @Where <>'' ");
|
|
strSql1.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
|
|
strSql1.Append(" print @strSQL ");
|
|
strSql1.Append(" exec sp_executesql @strSQL ");
|
|
strSql1.Append(" END ");
|
|
strSql1.Append(" ELSE ");
|
|
strSql1.Append(" BEGIN ");
|
|
strSql1.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
|
|
strSql1.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) + 1 ");
|
|
strSql1.Append(" WHERE '+@FeildName+' <= '+@OldOrderByValue + ' AND '+@FeildName+'>='+@NewOrderByValue+' ' ");
|
|
strSql1.Append(" IF @Where <>'' ");
|
|
strSql1.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
|
|
strSql1.Append(" print @strSQL ");
|
|
strSql1.Append(" exec sp_executesql @strSQL ");
|
|
strSql1.Append(" END ");
|
|
strSql1.Append(" END ");
|
|
SqlParameter[] update = {
|
|
new SqlParameter("@OldOrderByValue",SqlDbType.NVarChar,10),
|
|
new SqlParameter("@NewOrderByValue",SqlDbType.NVarChar,10),
|
|
new SqlParameter("@FeildName",SqlDbType.NVarChar,50),
|
|
new SqlParameter("@TableName",SqlDbType.NVarChar,50),
|
|
new SqlParameter("@Where",SqlDbType.NVarChar,500),
|
|
};
|
|
update[0].Value = model.OldOrderByValue; //原排序位置
|
|
update[1].Value = model.OrderByValue; //新排序位置
|
|
update[2].Value = "OrderByValue"; //排序欄位名稱
|
|
update[3].Value = "OTB_SYS_ModuleList"; //資料表名稱
|
|
update[4].Value = ""; //條件(依據需要變動的欄位值)
|
|
CommandInfo comm = new CommandInfo(strSql1.ToString(), update); //設定SQL指令方法
|
|
UpdateRow.Add(comm); //變更排序欄位到清單中
|
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append(" insert into OTB_SYS_ModuleList(");
|
|
strSql.Append(" ModuleID,ModuleName,ParentID,OrderByValue,BgCss,Memo,CreateUser,CreateDate,ModifyUser,ModifyDate)");
|
|
strSql.Append(" values (");
|
|
strSql.Append(" @ModuleID,@ModuleName,@ParentID,@OrderByValue,@BgCss,@Memo,@CreateUser,getdate(),@CreateUser,getdate())");
|
|
SqlParameter[] parameters = {
|
|
|
|
new SqlParameter("@ModuleID", SqlDbType.VarChar,10),
|
|
|
|
new SqlParameter("@ModuleName", SqlDbType.NVarChar,100),
|
|
new SqlParameter("@ParentID", SqlDbType.VarChar,10),
|
|
new SqlParameter("@OrderByValue", SqlDbType.Int,4),
|
|
new SqlParameter("@BgCss", SqlDbType.VarChar,50),
|
|
new SqlParameter("@Memo", SqlDbType.Text),
|
|
new SqlParameter("@CreateUser", SqlDbType.VarChar,50),
|
|
new SqlParameter("@CreateDate", SqlDbType.DateTime),
|
|
new SqlParameter("@ModifyUser", SqlDbType.VarChar,50),
|
|
new SqlParameter("@ModifyDate", SqlDbType.DateTime)};
|
|
|
|
parameters[0].Value = model.ModuleID;
|
|
|
|
parameters[1].Value = model.ModuleName;
|
|
parameters[2].Value = model.ParentID;
|
|
parameters[3].Value = model.OrderByValue;
|
|
parameters[4].Value = model.BgCss;
|
|
parameters[5].Value = model.Memo;
|
|
parameters[6].Value = model.CreateUser;
|
|
parameters[7].Value = model.CreateDate;
|
|
parameters[8].Value = model.ModifyUser;
|
|
parameters[9].Value = model.ModifyDate;
|
|
|
|
comm = new CommandInfo(strSql.ToString(), parameters); //宣告新增指令
|
|
UpdateRow.Add(comm); //新增指令放入清單中
|
|
if (DbHelperSQL.ExecuteSqlTran(UpdateRow) > 0)
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 更新一條資料
|
|
/// </summary>
|
|
public bool Update(OT.Model.OTB_SYS_ModuleList model)
|
|
{
|
|
|
|
//更新前先將排序欄位值往前或往後移動,才能新增值在指定排序
|
|
|
|
List<CommandInfo> UpdateRow = new List<CommandInfo>(); //宣告LIST清單
|
|
if (model.OldOrderByValue != model.OrderByValue)
|
|
{
|
|
StringBuilder strSql1 = new StringBuilder();
|
|
strSql1.Append(" DECLARE @strSQL NVARCHAR(1000) ");
|
|
strSql1.Append(" BEGIN ");
|
|
strSql1.Append(" PRINT @NewOrderByValue ");
|
|
strSql1.Append(" PRINT @OldOrderByValue ");
|
|
strSql1.Append(" IF CONVERT(INT, @NewOrderByValue) > CONVERT(INT,@OldOrderByValue) ");
|
|
strSql1.Append(" BEGIN ");
|
|
strSql1.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
|
|
strSql1.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) - 1 ");
|
|
strSql1.Append(" WHERE '+@FeildName+' >= '+@OldOrderByValue + ' AND '+@FeildName+'<='+@NewOrderByValue+' ' ");
|
|
strSql1.Append(" IF @Where <>'' ");
|
|
strSql1.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
|
|
strSql1.Append(" print @strSQL ");
|
|
strSql1.Append(" exec sp_executesql @strSQL ");
|
|
strSql1.Append(" END ");
|
|
strSql1.Append(" ELSE ");
|
|
strSql1.Append(" BEGIN ");
|
|
strSql1.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
|
|
strSql1.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) + 1 ");
|
|
strSql1.Append(" WHERE '+@FeildName+' <= '+@OldOrderByValue + ' AND '+@FeildName+'>='+@NewOrderByValue+' ' ");
|
|
strSql1.Append(" IF @Where <>'' ");
|
|
strSql1.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
|
|
strSql1.Append(" print @strSQL ");
|
|
strSql1.Append(" exec sp_executesql @strSQL ");
|
|
strSql1.Append(" END ");
|
|
strSql1.Append(" END ");
|
|
SqlParameter[] update = {
|
|
new SqlParameter("@OldOrderByValue",SqlDbType.NVarChar,10),
|
|
new SqlParameter("@NewOrderByValue",SqlDbType.NVarChar,10),
|
|
new SqlParameter("@FeildName",SqlDbType.NVarChar,50),
|
|
new SqlParameter("@TableName",SqlDbType.NVarChar,50),
|
|
new SqlParameter("@Where",SqlDbType.NVarChar,500),
|
|
};
|
|
update[0].Value = model.OldOrderByValue; //原排序位置
|
|
update[1].Value = model.OrderByValue; //新排序位置
|
|
update[2].Value = "OrderByValue"; //排序欄位名稱
|
|
update[3].Value = "OTB_SYS_ModuleList"; //資料表名稱
|
|
update[4].Value = ""; //條件(依據需要變動的欄位值)
|
|
CommandInfo commOrderValueUpdate = new CommandInfo(strSql1.ToString(), update); //設定SQL指令方法
|
|
UpdateRow.Add(commOrderValueUpdate); //變更排序欄位到清單中
|
|
}
|
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append(" update OTB_SYS_ModuleList set ");
|
|
strSql.Append(" ModuleName=@ModuleName,");
|
|
strSql.Append(" ParentID=@ParentID,");
|
|
//strSql.Append(" ClassCount=@ClassCount,");
|
|
strSql.Append(" OrderByValue=@OrderByValue,");
|
|
strSql.Append("BgCss=@BgCss,");
|
|
strSql.Append(" Memo=@Memo,");
|
|
strSql.Append(" ModifyUser=@ModifyUser,");
|
|
strSql.Append(" ModifyDate=getdate()");
|
|
strSql.Append(" where ModuleID=@ModuleID ");
|
|
SqlParameter[] parameters = {
|
|
|
|
new SqlParameter("@ModuleID", SqlDbType.VarChar,10),
|
|
|
|
new SqlParameter("@ModuleName", SqlDbType.NVarChar,100),
|
|
new SqlParameter("@ParentID", SqlDbType.VarChar,10),
|
|
new SqlParameter("@OrderByValue", SqlDbType.Int,4),
|
|
new SqlParameter("@BgCss", SqlDbType.VarChar,50),
|
|
new SqlParameter("@Memo", SqlDbType.Text),
|
|
new SqlParameter("@CreateUser", SqlDbType.VarChar,50),
|
|
new SqlParameter("@CreateDate", SqlDbType.DateTime),
|
|
new SqlParameter("@ModifyUser", SqlDbType.VarChar,50),
|
|
new SqlParameter("@ModifyDate", SqlDbType.DateTime)};
|
|
|
|
parameters[0].Value = model.ModuleID;
|
|
|
|
parameters[1].Value = model.ModuleName;
|
|
parameters[2].Value = model.ParentID;
|
|
parameters[3].Value = model.OrderByValue;
|
|
parameters[4].Value = model.BgCss;
|
|
parameters[5].Value = model.Memo;
|
|
parameters[6].Value = model.CreateUser;
|
|
parameters[7].Value = model.CreateDate;
|
|
parameters[8].Value = model.ModifyUser;
|
|
parameters[9].Value = model.ModifyDate;
|
|
|
|
CommandInfo commUpdate = new CommandInfo(strSql.ToString(), parameters); //宣告更新指令
|
|
UpdateRow.Add(commUpdate); //更新指令放入清單中
|
|
|
|
|
|
//DbHelperSQL.RunProcedure("OSP_OTB_SYS_ModuleList_Update", parameters, out rowsAffected);
|
|
if (DbHelperSQL.ExecuteSqlTran(UpdateRow) > 0)
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 刪除一條資料
|
|
/// </summary>
|
|
public bool Delete(OT.Model.OTB_SYS_ModuleList model)
|
|
{
|
|
////刪除前先將排序欄位值往前或往後移動,才能新增值在指定排序
|
|
List<CommandInfo> UpdateRow = new List<CommandInfo>(); //宣告LIST清單
|
|
OT.SQLServerDAL.OTB_SYS_ModuleList o_SQL = new OT.SQLServerDAL.OTB_SYS_ModuleList(); //宣告一個DAL型態呼叫GitListCount
|
|
int MaxValue = o_SQL.GetListCount("", ""); //獲取最大排序值
|
|
|
|
if (model.OldOrderByValue != MaxValue) //當原排序欄位不等於最大值代表需要變動中間值,當等於時刪除最大值
|
|
{
|
|
StringBuilder strSql1 = new StringBuilder();
|
|
strSql1.Append(" DECLARE @strSQL NVARCHAR(1000) ");
|
|
strSql1.Append(" BEGIN ");
|
|
strSql1.Append(" PRINT @NewOrderByValue ");
|
|
strSql1.Append(" PRINT @OldOrderByValue ");
|
|
strSql1.Append(" IF CONVERT(INT, @NewOrderByValue) > CONVERT(INT,@OldOrderByValue) ");
|
|
strSql1.Append(" BEGIN ");
|
|
strSql1.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
|
|
strSql1.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) - 1 ");
|
|
strSql1.Append(" WHERE '+@FeildName+' >= '+@OldOrderByValue + ' AND '+@FeildName+'<='+@NewOrderByValue+' ' ");
|
|
strSql1.Append(" IF @Where <>'' ");
|
|
strSql1.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
|
|
strSql1.Append(" print @strSQL ");
|
|
strSql1.Append(" exec sp_executesql @strSQL ");
|
|
strSql1.Append(" END ");
|
|
strSql1.Append(" ELSE ");
|
|
strSql1.Append(" BEGIN ");
|
|
strSql1.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
|
|
strSql1.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) + 1 ");
|
|
strSql1.Append(" WHERE '+@FeildName+' <= '+@OldOrderByValue + ' AND '+@FeildName+'>='+@NewOrderByValue+' ' ");
|
|
strSql1.Append(" IF @Where <>'' ");
|
|
strSql1.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
|
|
strSql1.Append(" print @strSQL ");
|
|
strSql1.Append(" exec sp_executesql @strSQL ");
|
|
strSql1.Append(" END ");
|
|
strSql1.Append(" END ");
|
|
SqlParameter[] update = {
|
|
new SqlParameter("@OldOrderByValue",SqlDbType.NVarChar,10),
|
|
new SqlParameter("@NewOrderByValue",SqlDbType.NVarChar,10),
|
|
new SqlParameter("@FeildName",SqlDbType.NVarChar,50),
|
|
new SqlParameter("@TableName",SqlDbType.NVarChar,50),
|
|
new SqlParameter("@Where",SqlDbType.NVarChar,500),
|
|
};
|
|
update[0].Value = model.OldOrderByValue; //原排序位置
|
|
update[1].Value = MaxValue; //新排序位置為最大排序值
|
|
update[2].Value = "OrderByValue"; //排序欄位名稱
|
|
update[3].Value = "OTB_SYS_ModuleList"; //資料表名稱
|
|
update[4].Value = ""; //條件(依據需要變動的欄位值)
|
|
CommandInfo commOrderValueUpdate = new CommandInfo(strSql1.ToString(), update); //設定SQL指令方法
|
|
UpdateRow.Add(commOrderValueUpdate); //變更排序欄位到清單中
|
|
}
|
|
|
|
////刪除
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("delete from OTB_SYS_ModuleList ");
|
|
strSql.Append(" where ModuleID=@ModuleID ");
|
|
SqlParameter[] parameters = {
|
|
|
|
new SqlParameter("@ModuleID", SqlDbType.VarChar,10)
|
|
};
|
|
|
|
parameters[0].Value = model.ModuleID;
|
|
|
|
|
|
//DbHelperSQL.RunProcedure("OSP_OTB_SYS_ModuleList_Delete", parameters, out rowsAffected);
|
|
CommandInfo commDel = new CommandInfo(strSql.ToString(), parameters);
|
|
UpdateRow.Add(commDel);
|
|
if (DbHelperSQL.ExecuteSqlTran(UpdateRow) > 0)
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 得到一個對象實體
|
|
/// </summary>
|
|
public OT.Model.OTB_SYS_ModuleList GetModel(string ModuleID)
|
|
{
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append("select top 1 ModuleID,ModuleName,ParentID,ClassCount,OrderByValue,BgCss,Memo,CreateUser,CreateDate,ModifyUser,ModifyDate from OTB_SYS_ModuleList ");
|
|
strSql.Append(" where ModuleID=@ModuleID ");
|
|
SqlParameter[] parameters = {
|
|
|
|
new SqlParameter("@ModuleID", SqlDbType.VarChar,10)
|
|
};
|
|
|
|
parameters[0].Value = ModuleID;
|
|
|
|
|
|
OT.Model.OTB_SYS_ModuleList model = new OT.Model.OTB_SYS_ModuleList();
|
|
//DataSet ds = DbHelperSQL.RunProcedure("OSP_OTB_SYS_ModuleList_GetModel", parameters, "ds");
|
|
DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters);
|
|
if (ds.Tables[0].Rows.Count > 0)
|
|
{
|
|
|
|
if (ds.Tables[0].Rows[0]["ModuleID"] != null && ds.Tables[0].Rows[0]["ModuleID"].ToString() != "")
|
|
{
|
|
model.ModuleID = ds.Tables[0].Rows[0]["ModuleID"].ToString();
|
|
}
|
|
|
|
if (ds.Tables[0].Rows[0]["ModuleName"] != null && ds.Tables[0].Rows[0]["ModuleName"].ToString() != "")
|
|
{
|
|
model.ModuleName = ds.Tables[0].Rows[0]["ModuleName"].ToString();
|
|
}
|
|
if (ds.Tables[0].Rows[0]["ParentID"] != null && ds.Tables[0].Rows[0]["ParentID"].ToString() != "")
|
|
{
|
|
model.ParentID = ds.Tables[0].Rows[0]["ParentID"].ToString();
|
|
}
|
|
if (ds.Tables[0].Rows[0]["OrderByValue"] != null && ds.Tables[0].Rows[0]["OrderByValue"].ToString() != "")
|
|
{
|
|
model.OrderByValue = int.Parse(ds.Tables[0].Rows[0]["OrderByValue"].ToString());
|
|
}
|
|
if (ds.Tables[0].Rows[0]["BgCss"] != null && ds.Tables[0].Rows[0]["BgCss"].ToString() != "")
|
|
{
|
|
model.BgCss = ds.Tables[0].Rows[0]["BgCss"].ToString();
|
|
}
|
|
if (ds.Tables[0].Rows[0]["Memo"] != null && ds.Tables[0].Rows[0]["Memo"].ToString() != "")
|
|
{
|
|
model.Memo = ds.Tables[0].Rows[0]["Memo"].ToString();
|
|
}
|
|
if (ds.Tables[0].Rows[0]["CreateUser"] != null && ds.Tables[0].Rows[0]["CreateUser"].ToString() != "")
|
|
{
|
|
model.CreateUser = ds.Tables[0].Rows[0]["CreateUser"].ToString();
|
|
}
|
|
if (ds.Tables[0].Rows[0]["CreateDate"] != null && ds.Tables[0].Rows[0]["CreateDate"].ToString() != "")
|
|
{
|
|
model.CreateDate = DateTime.Parse(ds.Tables[0].Rows[0]["CreateDate"].ToString());
|
|
}
|
|
if (ds.Tables[0].Rows[0]["ModifyUser"] != null && ds.Tables[0].Rows[0]["ModifyUser"].ToString() != "")
|
|
{
|
|
model.ModifyUser = ds.Tables[0].Rows[0]["ModifyUser"].ToString();
|
|
}
|
|
if (ds.Tables[0].Rows[0]["ModifyDate"] != null && ds.Tables[0].Rows[0]["ModifyDate"].ToString() != "")
|
|
{
|
|
model.ModifyDate = DateTime.Parse(ds.Tables[0].Rows[0]["ModifyDate"].ToString());
|
|
}
|
|
return model;
|
|
}
|
|
else
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 取得欄位總筆數
|
|
/// </summary>
|
|
public int GetListCount(string strModuleID, string strModuleName)
|
|
{
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append(" SELECT COUNT(0) FROM [OTB_SYS_ModuleList] ");
|
|
strSql.Append(" WHERE (ModuleID LIKE @ModuleID OR @ModuleID IS NULL OR @ModuleID='' OR @ModuleID='%%') ");
|
|
strSql.Append(" AND (ModuleName LIKE @ModuleName OR @ModuleName IS NULL OR @ModuleName='' OR @ModuleName='%%') ");
|
|
SqlParameter[] parameter = {
|
|
new SqlParameter("@ModuleID",SqlDbType.VarChar,10),
|
|
new SqlParameter("@ModuleName",SqlDbType.NVarChar,100)
|
|
};
|
|
parameter[0].Value = "%" + strModuleID + "%";
|
|
parameter[1].Value = "%" + strModuleName + "%";
|
|
//return (int)DbHelperSQL.GetSingle("OSP_OTB_SYS_ModuleList_GetCount", parameter);
|
|
return (int)DbHelperSQL.GetSingle(strSql.ToString(), parameter);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 取得資料表
|
|
/// </summary>
|
|
public DataSet GetList(int StartRecordIndex, int EndRecordIndex, string strModuleID, string strModuleName, string SortExpression)
|
|
{
|
|
StringBuilder strSql = new StringBuilder();
|
|
strSql.Append(" WITH ViewList(ModuleID, ParentID, Level) ");
|
|
strSql.Append(" AS ");
|
|
strSql.Append(" ( ");
|
|
strSql.Append(" SELECT ModuleID, ParentID, 0 ");
|
|
strSql.Append(" FROM [OTB_SYS_ModuleList] WHERE (ModuleID = [OTB_SYS_ModuleList].ModuleID) ");
|
|
strSql.Append(" UNION ALL ");
|
|
strSql.Append(" SELECT P.ModuleID, P.ParentID, B.Level+1 ");
|
|
strSql.Append(" FROM [OTB_SYS_ModuleList] P, ViewList B ");
|
|
strSql.Append(" WHERE P.ParentID=B.ModuleID ");
|
|
strSql.Append(" ) ");
|
|
strSql.Append(" SELECT ");
|
|
strSql.Append(" RowId ");
|
|
strSql.Append(" ,ModuleID ");
|
|
strSql.Append(" ,ModuleName ");
|
|
strSql.Append(" ,OrderByValue ");
|
|
strSql.Append(" ,[Count] ");
|
|
strSql.Append(" ,(SELECT COUNT(0) FROM [OTB_SYS_ModuleList]) AS ClassCount ");
|
|
strSql.Append(" FROM ");
|
|
strSql.Append(" ( ");
|
|
strSql.Append(" SELECT ");
|
|
strSql.Append(" CASE @SortExpression WHEN N'ModuleID' THEN ");
|
|
strSql.Append(" (ROW_NUMBER() OVER(Order BY M.ModuleID)) ");
|
|
strSql.Append(" WHEN N'ModuleID DESC' THEN ");
|
|
strSql.Append(" (ROW_NUMBER() OVER(Order BY M.ModuleID DESC)) ");
|
|
strSql.Append(" WHEN N'ModuleName' THEN ");
|
|
strSql.Append(" (ROW_NUMBER() OVER(Order BY ModuleName)) ");
|
|
strSql.Append(" WHEN N'ModuleName DESC' THEN ");
|
|
strSql.Append(" (ROW_NUMBER() OVER(Order BY ModuleName DESC)) ");
|
|
strSql.Append(" WHEN N'OrderByValue' THEN ");
|
|
strSql.Append(" (ROW_NUMBER() OVER(Order BY OrderByValue)) ");
|
|
strSql.Append(" WHEN N'OrderByValue DESC' THEN ");
|
|
strSql.Append(" (ROW_NUMBER() OVER(Order BY OrderByValue DESC)) ");
|
|
strSql.Append(" WHEN N'Count' THEN ");
|
|
strSql.Append(" (ROW_NUMBER() OVER(Order BY VLL.COUNT1)) ");
|
|
strSql.Append(" WHEN N'Count DESC' THEN ");
|
|
strSql.Append(" (ROW_NUMBER() OVER(Order BY VLL.COUNT1 DESC)) ");
|
|
strSql.Append(" ELSE ");
|
|
strSql.Append(" (ROW_NUMBER() OVER(Order BY M.OrderByValue)) ");
|
|
strSql.Append(" END AS RowId ");
|
|
strSql.Append(" ,M.ModuleID ");
|
|
strSql.Append(" ,ModuleName ");
|
|
strSql.Append(" ,M.OrderByValue ");
|
|
strSql.Append(" ,ISNULL(VLL.COUNT1,0) AS [COUNT] ");
|
|
strSql.Append(" FROM [OTB_SYS_ModuleList] AS M ");
|
|
strSql.Append(" LEFT JOIN (SELECT VL.ModuleID,COUNT(0) AS COUNT1 ");
|
|
strSql.Append(" FROM ViewList AS VL ");
|
|
strSql.Append(" INNER JOIN OTB_SYS_ProgramList AS SPL ON VL.ModuleID = SPL.ModuleID ");
|
|
strSql.Append(" GROUP BY VL.ModuleID) ");
|
|
strSql.Append(" AS VLL ON M.ModuleID=VLL.ModuleID ");
|
|
strSql.Append(" WHERE (M.ModuleID LIKE @ModuleID OR @ModuleID IS NULL OR @ModuleID='' OR @ModuleID='%%') ");
|
|
strSql.Append(" AND (ModuleName LIKE @ModuleName OR @ModuleName IS NULL OR @ModuleName='' OR ModuleName='%%') ");
|
|
strSql.Append(" ) AS AA ");
|
|
strSql.Append(" WHERE AA.RowId>=@StartRecordIndex AND AA.RowId<=@EndRecordIndex ");
|
|
strSql.Append(" ORDER BY RowId ");
|
|
|
|
|
|
SqlParameter[] parameter = {
|
|
new SqlParameter("@StartRecordIndex",SqlDbType.Int),
|
|
new SqlParameter("@EndRecordIndex",SqlDbType.Int),
|
|
new SqlParameter("@ModuleID",SqlDbType.VarChar,10),
|
|
new SqlParameter("@ModuleName",SqlDbType.NVarChar,100),
|
|
new SqlParameter("@SortExpression",SqlDbType.VarChar,500)
|
|
};
|
|
parameter[0].Value = StartRecordIndex;
|
|
parameter[1].Value = EndRecordIndex;
|
|
parameter[2].Value = "%" + strModuleID + "%";
|
|
parameter[3].Value = "%" + strModuleName + "%";
|
|
parameter[4].Value = SortExpression;
|
|
|
|
//return DbHelperSQL.RunProcedure("OSP_OTB_SYS_ModuleList_GetListByID", parameter, "ds");
|
|
return DbHelperSQL.Query(strSql.ToString(), parameter);
|
|
}
|
|
#endregion Method
|
|
|
|
}
|
|
}
|
|
|