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.
 
 
 
 
 
 

603 lines
33 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; //調用List<>
namespace OT.SQLServerDAL
{
/// <summary>
/// 資料訪問類:OTB_SYS_ProgramList
/// </summary>
public partial class OTB_SYS_ProgramList : IOTB_SYS_ProgramList
{
public OTB_SYS_ProgramList()
{ }
#region Method
/// <summary>
/// 是否存在該記錄
/// </summary>
public bool Exists(string ProgramID)
{
int rowsAffected;
StringBuilder strSql = new StringBuilder();
strSql.Append(" DECLARE @TempID int ");
strSql.Append(" SELECT @TempID = count(1) FROM [OTB_SYS_ProgramList] WHERE ProgramID=@ProgramID ");
SqlParameter[] parameters = {
new SqlParameter("@ProgramID", SqlDbType.NVarChar,200)
};
parameters[0].Value = ProgramID;
return DbHelperSQL.Exists(strSql.ToString(), parameters);
}
public bool ExistsModuleID(string strModuleID)
{
StringBuilder strSql = new StringBuilder();
strSql.Append(" DECLARE @TempID int ");
strSql.Append(" SELECT @TempID = count(1) FROM [OTB_SYS_ProgramList] WHERE ModuleID=@ModuleID ");
SqlParameter[] parameters = {
new SqlParameter("@ModuleID", SqlDbType.NVarChar,200) };
parameters[0].Value = strModuleID;
return DbHelperSQL.Exists(strSql.ToString(), parameters);
}
/// <summary>
/// 增加一條資料
/// </summary>
public bool Add(OT.Model.OTB_SYS_ProgramList model)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("insert into OTB_SYS_ProgramList(");
strSql.Append("ProgramID,ProgramName,ModuleID,FilePath,AllowRight,OrderByValue,ProgramType,BgCss,grouptag,Effective,ShowInList,Memo,CreateUser,CreateDate,ModifyUser,ModifyDate,MainTableName,ImgPath)");
strSql.Append(" values (");
strSql.Append("@ProgramID,@ProgramName,@ModuleID,@FilePath,@AllowRight,@OrderByValue,@ProgramType,@BgCss,@grouptag,@Effective,@ShowInList,@Memo,@CreateUser,getdate(),@CreateUser,getdate(),@MainTableName,@ImgPath)");
SqlParameter[] parameters = {
new SqlParameter("@ProgramID", SqlDbType.NVarChar,200),
new SqlParameter("@ProgramName", SqlDbType.NVarChar,100),
new SqlParameter("@ModuleID", SqlDbType.VarChar,10),
new SqlParameter("@FilePath", SqlDbType.NVarChar,500),
new SqlParameter("@ImgPath", SqlDbType.NVarChar,500),
new SqlParameter("@AllowRight", SqlDbType.VarChar,200),
new SqlParameter("@OrderByValue", SqlDbType.Int,4),
new SqlParameter("@ProgramType", SqlDbType.VarChar,1),
new SqlParameter("@BgCss", SqlDbType.VarChar,50),
new SqlParameter("@GroupTag", SqlDbType.NVarChar,200),
new SqlParameter("@Effective", SqlDbType.Char,1),
new SqlParameter("@ShowInList", SqlDbType.Char,1),
new SqlParameter("@MainTableName", 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.ProgramID;
parameters[1].Value = model.ProgramName;
parameters[2].Value = model.ModuleID;
parameters[3].Value = model.FilePath;
parameters[4].Value = model.ImgPath;
parameters[5].Value = model.AllowRight;
parameters[6].Value = model.OrderByValue;
parameters[7].Value = model.ProgramType;
parameters[8].Value = model.BgCss;
parameters[9].Value = model.GroupTag;
parameters[10].Value = model.Effective;
parameters[11].Value = model.ShowInList;
parameters[12].Value = model.MainTableName;
parameters[13].Value = model.Memo;
parameters[14].Value = model.CreateUser;
parameters[15].Value = model.CreateDate;
parameters[16].Value = model.ModifyUser;
parameters[17].Value = model.ModifyDate;
List<CommandInfo> listCommand = new List<CommandInfo>(); //宣告一個List清單
//帶入Procedure變數的參數值
StringBuilder strSql2 = new StringBuilder();
strSql2.Append(" DECLARE @strSQL NVARCHAR(1000) ");
strSql2.Append(" IF CONVERT(INT, @NewOrderByValue) > CONVERT(INT,@OldOrderByValue) ");
strSql2.Append(" BEGIN "); //由小變大,OLD<-1<=NEW
strSql2.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
strSql2.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) - 1 ");
strSql2.Append(" WHERE '+@FeildName+' >= '+@OldOrderByValue + ' AND '+@FeildName+'<='+@NewOrderByValue+' ' ");
strSql2.Append(" IF @Where <>'' ");
strSql2.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
strSql2.Append(" print @strSQL ");
strSql2.Append(" exec sp_executesql @strSQL ");
strSql2.Append(" END ");
strSql2.Append(" ELSE ");
strSql2.Append(" BEGIN "); //由大變小,@NewOrderByValue<=+1<@OldOrderByValue
strSql2.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
strSql2.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) + 1 ");
strSql2.Append(" WHERE '+@FeildName+' <= '+@OldOrderByValue + ' AND '+@FeildName+'>='+@NewOrderByValue+' ' ");
strSql2.Append(" IF @Where <>'' ");
strSql2.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
strSql2.Append(" print @strSQL ");
strSql2.Append(" exec sp_executesql @strSQL ");
strSql2.Append(" END ");
SqlParameter[] UpdataRow = {
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)
};
//設定參數值
UpdataRow[0].Value = model.OldOrderByValue;
UpdataRow[1].Value = model.OrderByValue;
UpdataRow[2].Value = "OrderByValue";
UpdataRow[3].Value = "OTB_SYS_ProgramList";
UpdataRow[4].Value = "ModuleID = '" + model.ModuleID + "' ";
//加入資料排序變動的SQL語法
CommandInfo com = new CommandInfo(strSql2.ToString(), UpdataRow);
listCommand.Add(com);
//加入新增資料的SQL語法
com = new CommandInfo(strSql.ToString(), parameters);
listCommand.Add(com);
if (DbHelperSQL.ExecuteSqlTran(listCommand) > 0)
{
//代表變動排序及新增成功
return true;
}
else
{
//代表變動排序及新增失敗
return false;
}
}
/// <summary>
/// 更新一條資料
/// </summary>
public bool Update(OT.Model.OTB_SYS_ProgramList model)
{
StringBuilder strSql = new StringBuilder();
strSql.Append(" UPDATE [OTB_SYS_ProgramList] SET ");
strSql.Append(" [ProgramName] = @ProgramName,[ModuleID] = @ModuleID,[FilePath] = @FilePath,[AllowRight] = @AllowRight,[OrderByValue] = @OrderByValue,[ProgramType] = @ProgramType,[BgCss]=@BgCss,[grouptag]=@grouptag,[Effective] = @Effective,[Memo] = @Memo,[ModifyUser] = @ModifyUser,[ModifyDate] = GETDATE(),[ShowInList]=@ShowInList,[MainTableName] = @MainTableName ");
strSql.Append(" WHERE ProgramID=@ProgramID ");
SqlParameter[] parameters = {
new SqlParameter("@ProgramID", SqlDbType.NVarChar,200),
new SqlParameter("@ProgramName", SqlDbType.NVarChar,100),
new SqlParameter("@ModuleID", SqlDbType.VarChar,10),
new SqlParameter("@FilePath", SqlDbType.NVarChar,500),
new SqlParameter("@ImgPath", SqlDbType.NVarChar,500),
new SqlParameter("@AllowRight", SqlDbType.VarChar,200),
new SqlParameter("@OrderByValue", SqlDbType.Int,4),
new SqlParameter("@ProgramType", SqlDbType.VarChar,1),
new SqlParameter("@BgCss", SqlDbType.VarChar,50),
new SqlParameter("@GroupTag", SqlDbType.NVarChar,200),
new SqlParameter("@Effective", SqlDbType.Char,1),
new SqlParameter("@ShowInList", SqlDbType.Char,1),
new SqlParameter("@MainTableName", 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.ProgramID;
parameters[1].Value = model.ProgramName;
parameters[2].Value = model.ModuleID;
parameters[3].Value = model.FilePath;
parameters[4].Value = model.ImgPath;
parameters[5].Value = model.AllowRight;
parameters[6].Value = model.OrderByValue;
parameters[7].Value = model.ProgramType;
parameters[8].Value = model.BgCss;
parameters[9].Value = model.GroupTag;
parameters[10].Value = model.Effective;
parameters[11].Value = model.ShowInList;
parameters[12].Value = model.MainTableName;
parameters[13].Value = model.Memo;
parameters[14].Value = model.CreateUser;
parameters[15].Value = model.CreateDate;
parameters[16].Value = model.ModifyUser;
parameters[17].Value = model.ModifyDate;
List<CommandInfo> listCommand = new List<CommandInfo>(); //宣告一個List清單
CommandInfo o_CommandInfo;
if (model.ModuleIDOld == model.ModuleID)
{
StringBuilder strSql2 = new StringBuilder();
strSql2.Append(" DECLARE @strSQL NVARCHAR(1000) ");
strSql2.Append(" BEGIN ");
strSql2.Append(" PRINT @NewOrderByValue ");
strSql2.Append(" PRINT @OldOrderByValue ");
strSql2.Append(" IF CONVERT(INT, @NewOrderByValue) > CONVERT(INT,@OldOrderByValue) ");
strSql2.Append(" BEGIN "); //由小變大,OLD<-1<=NEW
strSql2.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
strSql2.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',2) - 1 ");
strSql2.Append(" WHERE '+@FeildName+' >= '+@OldOrderByValue + ' AND '+@FeildName+'<='+@NewOrderByValue+' ' ");
strSql2.Append(" IF @Where <>'' ");
strSql2.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
strSql2.Append(" print @strSQL ");
strSql2.Append(" exec sp_executesql @strSQL ");
strSql2.Append(" END ");
strSql2.Append(" ELSE ");
strSql2.Append(" BEGIN "); //由大變小,@NewOrderByValue<=+1<@OldOrderByValue
strSql2.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
strSql2.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) + 1 ");
strSql2.Append(" WHERE '+@FeildName+' <= '+@OldOrderByValue + ' AND '+@FeildName+'>='+@NewOrderByValue+' ' ");
strSql2.Append(" IF @Where <>'' ");
strSql2.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
strSql2.Append(" print @strSQL ");
strSql2.Append(" exec sp_executesql @strSQL ");
strSql2.Append(" END ");
strSql2.Append(" END ");
SqlParameter[] UpdataRow = {
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)
};
//設定參數值
UpdataRow[0].Value = model.OldOrderByValue;
UpdataRow[1].Value = model.OrderByValue;
UpdataRow[2].Value = "OrderByValue";
UpdataRow[3].Value = "OTB_SYS_ProgramList";
UpdataRow[4].Value = "ModuleID = '" + model.ModuleID + "' ";
o_CommandInfo = new CommandInfo(); //定義每一個SQL,代表修改
o_CommandInfo.CommandText = strSql2.ToString();
o_CommandInfo.Parameters = UpdataRow;
listCommand.Add(o_CommandInfo); //添加當前的SQL
}
else
{
//有異動模組
//修改新模組的排序
StringBuilder strSql3 = new StringBuilder();
strSql3.Append(" DECLARE @strSQL NVARCHAR(1000) ");
strSql3.Append(" BEGIN ");
strSql3.Append(" PRINT @NewOrderByValue ");
strSql3.Append(" PRINT @OldOrderByValue ");
strSql3.Append(" IF CONVERT(INT, @NewOrderByValue) > CONVERT(INT,@OldOrderByValue) ");
strSql3.Append(" BEGIN "); //由小變大,OLD<-1<=NEW
strSql3.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
strSql3.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',2) - 1 ");
strSql3.Append(" WHERE '+@FeildName+' >= '+@OldOrderByValue + ' AND '+@FeildName+'<='+@NewOrderByValue+' ' ");
strSql3.Append(" IF @Where <>'' ");
strSql3.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
strSql3.Append(" print @strSQL ");
strSql3.Append(" exec sp_executesql @strSQL ");
strSql3.Append(" END ");
strSql3.Append(" ELSE ");
strSql3.Append(" BEGIN "); //由大變小,@NewOrderByValue<=+1<@OldOrderByValue
strSql3.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
strSql3.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) + 1 ");
strSql3.Append(" WHERE '+@FeildName+' <= '+@OldOrderByValue + ' AND '+@FeildName+'>='+@NewOrderByValue+' ' ");
strSql3.Append(" IF @Where <>'' ");
strSql3.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
strSql3.Append(" print @strSQL ");
strSql3.Append(" exec sp_executesql @strSQL ");
strSql3.Append(" END ");
strSql3.Append(" END ");
SqlParameter[] parametersChangeOrder = {
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)};
parametersChangeOrder[0].Value = model.NewModuleMaxNo;
parametersChangeOrder[1].Value = model.OrderByValue;
parametersChangeOrder[2].Value = "OrderByValue";
parametersChangeOrder[3].Value = "OTB_SYS_ProgramList";
parametersChangeOrder[4].Value = "ModuleID = '" + model.ModuleID + "' ";
o_CommandInfo = new CommandInfo(); //定義每一個SQL,代表修改
o_CommandInfo.CommandText = strSql3.ToString();
o_CommandInfo.Parameters = parametersChangeOrder;
listCommand.Add(o_CommandInfo); //添加當前的SQL
//修改舊模組的排序
StringBuilder strSql4 = new StringBuilder();
strSql4.Append(" DECLARE @strSQL NVARCHAR(1000) ");
strSql4.Append(" BEGIN ");
strSql4.Append(" PRINT @NewOrderByValue ");
strSql4.Append(" PRINT @OldOrderByValue ");
strSql4.Append(" IF CONVERT(INT, @NewOrderByValue) > CONVERT(INT,@OldOrderByValue) ");
strSql4.Append(" BEGIN "); //由小變大,OLD<-1<=NEW
strSql4.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
strSql4.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',2) - 1 ");
strSql4.Append(" WHERE '+@FeildName+' >= '+@OldOrderByValue + ' AND '+@FeildName+'<='+@NewOrderByValue+' ' ");
strSql4.Append(" IF @Where <>'' ");
strSql4.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
strSql4.Append(" print @strSQL ");
strSql4.Append(" exec sp_executesql @strSQL ");
strSql4.Append(" END ");
strSql4.Append(" ELSE ");
strSql4.Append(" BEGIN "); //由大變小,@NewOrderByValue<=+1<@OldOrderByValue
strSql4.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
strSql4.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) + 1 ");
strSql4.Append(" WHERE '+@FeildName+' <= '+@OldOrderByValue + ' AND '+@FeildName+'>='+@NewOrderByValue+' ' ");
strSql4.Append(" IF @Where <>'' ");
strSql4.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
strSql4.Append(" print @strSQL ");
strSql4.Append(" exec sp_executesql @strSQL ");
strSql4.Append(" END ");
strSql4.Append(" END ");
SqlParameter[] parametersChangeOrderOld = {
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)};
parametersChangeOrderOld[0].Value = model.OldOrderByValue;
parametersChangeOrderOld[1].Value = model.OldModuleMaxNo;
parametersChangeOrderOld[2].Value = "OrderByValue";
parametersChangeOrderOld[3].Value = "OTB_SYS_ProgramList";
parametersChangeOrderOld[4].Value = "ModuleID = '" + model.ModuleIDOld + "' ";
o_CommandInfo = new CommandInfo(); //定義每一個SQL,代表修改
o_CommandInfo.CommandText = strSql4.ToString();
o_CommandInfo.Parameters = parametersChangeOrderOld;
listCommand.Add(o_CommandInfo); //添加當前的SQL
}
o_CommandInfo = new CommandInfo(); //定義每一個SQL,代表新增,雖然參數名稱相同,但是經過new以後就是新的對象
o_CommandInfo.CommandText = strSql.ToString();
o_CommandInfo.Parameters = parameters;
listCommand.Add(o_CommandInfo); //添加當前的SQL
if (DbHelperSQL.ExecuteSqlTran(listCommand) > 0)
{
//代表變動排序及新增成功
return true;
}
else
{
//代表變動排序及新增失敗
return false;
}
}
/// <summary>
/// 刪除一條資料
/// </summary>
public bool Delete(string ProgramID)
{
StringBuilder strSql = new StringBuilder();
strSql.Append(" DECLARE @OrderByValue INT ");
strSql.Append(" DECLARE @ModuleID VARCHAR(10) ");
strSql.Append(" SELECT @OrderByValue = OrderByValue,@ModuleID=ModuleID ");
strSql.Append(" FROM [OTB_SYS_ProgramList] ");
strSql.Append(" WHERE ProgramID=@ProgramID ");
strSql.Append(" DELETE [OTB_SYS_ProgramList] ");
strSql.Append(" WHERE ProgramID=@ProgramID ");
strSql.Append(" UPDATE [OTB_SYS_ProgramList] ");
strSql.Append(" SET OrderByValue = ISNULL(OrderByValue,1) - 1 ");
strSql.Append(" WHERE OrderByValue > @OrderByValue ");
strSql.Append(" AND ModuleID = @ModuleID ");
SqlParameter[] parameters = { new SqlParameter("@ProgramID", SqlDbType.NVarChar, 200) };
parameters[0].Value = ProgramID;
int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
if (rows > 0)
{
return true;
}
else
{
return false;
}
}
/// <summary>
/// 批量刪除資料
/// </summary>
public bool DeleteList(string ProgramIDlist)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("delete from OTB_SYS_ProgramList ");
strSql.Append(" where ProgramID in (" + ProgramIDlist + ") ");
int rows = DbHelperSQL.ExecuteSql(strSql.ToString());
if (rows > 0)
{
return true;
}
else
{
return false;
}
}
/// <summary>
/// 得到一個對象實體
/// </summary>
public OT.Model.OTB_SYS_ProgramList GetModel(string ProgramID)
{
StringBuilder strSql = new StringBuilder();
strSql.Append(" SELECT ");
strSql.Append(" ProgramID,ProgramName,AllowRight,ModuleID,FilePath,MainTableName,ImgPath,OrderByValue,ProgramType,BgCss,grouptag,Effective,Memo,CreateUser,CreateDate,ModifyUser,ModifyDate,ShowInList ");
strSql.Append(" FROM [OTB_SYS_ProgramList] ");
strSql.Append(" WHERE ProgramID=@ProgramID ");
SqlParameter[] parameters = {new SqlParameter("@ProgramID", SqlDbType.NVarChar,200)};
parameters[0].Value = ProgramID;
OT.Model.OTB_SYS_ProgramList model = new OT.Model.OTB_SYS_ProgramList();
DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters);
if (ds.Tables[0].Rows.Count > 0)
{
if (ds.Tables[0].Rows[0]["ProgramID"] != null && ds.Tables[0].Rows[0]["ProgramID"].ToString() != "")
{
model.ProgramID = ds.Tables[0].Rows[0]["ProgramID"].ToString();
}
if (ds.Tables[0].Rows[0]["ProgramName"] != null && ds.Tables[0].Rows[0]["ProgramName"].ToString() != "")
{
model.ProgramName = ds.Tables[0].Rows[0]["ProgramName"].ToString();
}
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]["FilePath"] != null && ds.Tables[0].Rows[0]["FilePath"].ToString() != "")
{
model.FilePath = ds.Tables[0].Rows[0]["FilePath"].ToString();
}
if (ds.Tables[0].Rows[0]["ImgPath"] != null && ds.Tables[0].Rows[0]["ImgPath"].ToString() != "")
{
model.ImgPath = ds.Tables[0].Rows[0]["ImgPath"].ToString();
}
if (ds.Tables[0].Rows[0]["AllowRight"] != null && ds.Tables[0].Rows[0]["AllowRight"].ToString() != "")
{
model.AllowRight = ds.Tables[0].Rows[0]["AllowRight"].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]["ProgramType"] != null && ds.Tables[0].Rows[0]["ProgramType"].ToString() != "")
{
model.ProgramType = ds.Tables[0].Rows[0]["ProgramType"].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]["GroupTag"] != null && ds.Tables[0].Rows[0]["GroupTag"].ToString() != "")
{
model.GroupTag = ds.Tables[0].Rows[0]["GroupTag"].ToString();
}
if (ds.Tables[0].Rows[0]["Effective"] != null && ds.Tables[0].Rows[0]["Effective"].ToString() != "")
{
model.Effective = ds.Tables[0].Rows[0]["Effective"].ToString();
}
if (ds.Tables[0].Rows[0]["ShowInList"] != null && ds.Tables[0].Rows[0]["ShowInList"].ToString() != "")
{
model.ShowInList = ds.Tables[0].Rows[0]["ShowInList"].ToString();
}
if (ds.Tables[0].Rows[0]["MainTableName"] != null && ds.Tables[0].Rows[0]["MainTableName"].ToString() != "")
{
model.MainTableName = ds.Tables[0].Rows[0]["MainTableName"].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;
}
}
//=====Create By Ted 2014/5/13=====
/// <summary>
/// 獲得資料表
/// </summary>
public DataSet GetList(int StartRecordIndex, int EndRecordIndex, string ModuleID, string ProgramName, string Effective, string sort)
{
//設定SQL Procedure參數設定
StringBuilder strSql = new StringBuilder();
strSql.Append("SELECT RowID,ProgramID,ProgramName,ModuleID,ModuleName,FilePath,grouptag,OrderByValue,ShowInList,Effective,ProgramType,");
strSql.Append(" (SELECT COUNT(0) FROM OTB_SYS_ProgramList WHERE ModuleID = AB.ModuleID) AS ClassCount");
strSql.Append(" FROM(");
strSql.Append(" SELECT ");
strSql.Append(" CASE @SortExpression");
strSql.Append(" WHEN N'ModuleName' THEN ROW_NUMBER() OVER(ORDER BY M.ModuleName)");
strSql.Append(" WHEN N'ModuleName DESC' THEN ROW_NUMBER() OVER(ORDER BY M.ModuleName DESC)");
strSql.Append(" WHEN N'ProgramName' THEN ROW_NUMBER() OVER(ORDER BY ProgramName)");
strSql.Append(" WHEN N'ProgramName DESC' THEN ROW_NUMBER() OVER(ORDER BY ProgramName DESC)");
strSql.Append(" WHEN N'ProgramType' THEN ROW_NUMBER() OVER(ORDER BY P.ProgramType)");
strSql.Append(" WHEN N'ProgramType DESC' THEN ROW_NUMBER() OVER(ORDER BY P.ProgramType DESC)");
strSql.Append(" WHEN N'Effective' THEN ROW_NUMBER() OVER(ORDER BY P.Effective)");
strSql.Append(" WHEN N'Effective DESC' THEN ROW_NUMBER() OVER(ORDER BY P.Effective DESC)");
strSql.Append(" WHEN N'ShowInList' THEN ROW_NUMBER() OVER(ORDER BY P.ShowInList)");
strSql.Append(" WHEN N'ShowInList DESC' THEN ROW_NUMBER() OVER(ORDER BY P.ShowInList DESC)");
strSql.Append(" WHEN N'OrderByValue' THEN ROW_NUMBER() OVER(ORDER BY M.ModuleID, P.OrderByValue)");
strSql.Append(" WHEN N'OrderByValue DESC' THEN ROW_NUMBER() OVER(ORDER BY M.ModuleID, P.OrderByValue DESC)");
strSql.Append(" ELSE");
strSql.Append(" ROW_NUMBER() OVER(ORDER BY M.ModuleID,P.OrderByValue)");
strSql.Append(" END AS RowID,");
strSql.Append(" ProgramID,ProgramName,P.ModuleID,");
strSql.Append(" M.ModuleName,");
strSql.Append(" FilePath,grouptag,P.OrderByValue,ShowInList,Effective,ProgramType");
strSql.Append(" FROM OTB_SYS_ProgramList AS P");
strSql.Append(" INNER JOIN OTB_SYS_ModuleList AS M ON P.ModuleID = M.ModuleID");
strSql.Append(" WHERE (P.ModuleID = @ModuleID OR @ModuleID IS NULL OR @ModuleID = '') AND");
strSql.Append(" (P.ProgramName LIKE @ProgramName OR @ProgramName IS NULL OR @ProgramName = '') AND");
strSql.Append(" (P.Effective = @Effective OR @Effective IS NULL OR @Effective = '')");
strSql.Append(" ) AS AB");
strSql.Append(" WHERE RowID >= @StartRecordIndex AND RowID <= @EndRecordIndex");
strSql.Append(" ORDER BY RowID,ModuleID");
SqlParameter[] parameter = {
new SqlParameter("@StartRecordIndex",SqlDbType.Int),
new SqlParameter("@EndRecordIndex",SqlDbType.Int),
new SqlParameter("@ModuleID",SqlDbType.VarChar,10),
new SqlParameter("@ProgramName",SqlDbType.NVarChar,100),
new SqlParameter("@Effective",SqlDbType.Char,1),
new SqlParameter("@SortExpression",SqlDbType.NVarChar,500)
};
//給予每個參數值
parameter[0].Value = StartRecordIndex;
parameter[1].Value = EndRecordIndex;
parameter[2].Value = ModuleID;
parameter[3].Value = "%" + ProgramName + "%";
parameter[4].Value = Effective;
parameter[5].Value = sort;
//執行SQL Procedure
return DbHelperSQL.Query(strSql.ToString(), parameter);
}
/// <summary>
/// 獲得資料總筆數
/// </summary>
public int GetListCount(string ModuleID, string ProgramName, string Effective)
{
StringBuilder strSql = new StringBuilder();
strSql.Append(" SELECT ");
strSql.Append(" isnull(COUNT(0),'0') ");
strSql.Append(" FROM [OTB_SYS_ProgramList] AS P ");
strSql.Append(" INNER JOIN [OTB_SYS_ModuleList] AS M ON P.ModuleID = M.ModuleID ");
strSql.Append(" WHERE (M.ModuleID = @ModuleID OR @ModuleID IS NULL OR @ModuleID='') ");
strSql.Append(" AND (ProgramName LIKE @ProgramName OR @ProgramName IS NULL OR @ProgramName='') ");
strSql.Append(" AND (Effective = @Effective OR @Effective IS NULL OR @Effective='') ");
SqlParameter[] parameters = {
new SqlParameter("@ModuleID", SqlDbType.VarChar,10)
,new SqlParameter("@ProgramName", SqlDbType.NVarChar,100)
,new SqlParameter("@Effective", SqlDbType.Char,1)
};
parameters[0].Value = ModuleID;
parameters[1].Value = "%" + ProgramName + "%";
parameters[2].Value = Effective;
return (int)DbHelperSQL.GetSingle(strSql.ToString(), parameters);
}
/// <summary>
/// GetAllList取得頁面資訊(中英文功能名稱)
/// </summary>
public DataSet GetAllList()
{
StringBuilder strSql = new StringBuilder();
strSql.Append(" SELECT ");
strSql.Append(" ProgramID,ProgramName,AllowRight,MainTableName ");
strSql.Append(" FROM [OTB_SYS_ProgramList] ");
SqlParameter[] parameters = new SqlParameter[0];
return DbHelperSQL.Query(strSql.ToString(), parameters);
}
#endregion Method
}
}