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.

874 lines
50 KiB

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using OT.IDAL;
  6. using System.Data;
  7. using System.Data.SqlClient;
  8. using DBUtility;
  9. namespace OT.SQLServerDAL
  10. {
  11. public class CommonClass : ICommonClass
  12. {
  13. #region 下拉選單
  14. /// <summary>
  15. /// 得到一個模組實體
  16. /// </summary>
  17. /// 使用地方: Menu.aspx.cs by Gary 2013/12/23
  18. public DataSet GetDDLModuleList(string UserRoleId)
  19. {
  20. StringBuilder strSql = new StringBuilder();
  21. strSql.Append(" WITH tr (ModuleID,ModuleName,ParentID) ");
  22. strSql.Append(" as( ");
  23. strSql.Append(" SELECT ModuleID,ModuleName,ParentID ");
  24. strSql.Append(" FROM OTB_SYS_ModuleList WHERE ModuleID in ( SELECT DISTINCT ModuleID ");
  25. strSql.Append(" FROM OTB_SYS_Authorize AS SA ");
  26. strSql.Append(" INNER JOIN dbo.OTB_SYS_ProgramList AS PL ON SA.ProgramID = PL.ProgramID ");
  27. strSql.Append(" WHERE SA.RuleID IN (SELECT RuleID FROM OTB_SYS_MembersToRule WHERE MemberID = @RULEID) and SA.AllowRight <>'' ");
  28. strSql.Append(" ) ");
  29. strSql.Append(" union all ");
  30. strSql.Append(" SELECT b.ModuleID,b.ModuleName,b.ParentID ");
  31. strSql.Append(" FROM OTB_SYS_ModuleList as b ");
  32. strSql.Append(" inner join tr on b.ModuleID = tr.ParentID ");
  33. strSql.Append(" ) ");
  34. strSql.Append(" SELECT distinct ");
  35. strSql.Append(" SM .ModuleID ");
  36. strSql.Append(" ,SM .ModuleName ");
  37. strSql.Append(" ,SM .ParentID ");
  38. strSql.Append(" FROM [OTB_SYS_ModuleList] AS SM ");
  39. strSql.Append(" inner join tr on sm.ModuleID in(tr.ModuleID) ");
  40. strSql.Append(" WHERE ISNULL(SM .ParentID,'')='' ");
  41. SqlParameter[] parameters = {
  42. new SqlParameter("@RuleID", SqlDbType.NVarChar,50) };
  43. parameters[0].Value = UserRoleId;
  44. return DbHelperSQL.Query(strSql.ToString(), parameters);
  45. //return DbHelperSQL.RunProcedure("OSP_Common_DDL_GetModuleListByUserGroupId", parameters, "ModuleList");
  46. }
  47. /// <summary>
  48. /// 得到一個程式清單實體
  49. /// </summary>
  50. /// <param name="ModuleID"></param>
  51. /// <param name="UserRoleId"></param>
  52. /// <returns></returns>
  53. /// 使用地方: ModuleDefault.aspx.cs by Gary 2013/12/23
  54. public DataSet GetProgramListByModuleID(string ModuleID, string UserRoleId)
  55. {
  56. StringBuilder strSql = new StringBuilder();
  57. //--Table1
  58. strSql.Append(" WITH ViewList (ModuleID,ParentID) ");
  59. strSql.Append(" as( ");
  60. strSql.Append(" SELECT ModuleID,ParentID ");
  61. strSql.Append(" FROM OTB_SYS_ModuleList WHERE ModuleID in ( SELECT DISTINCT ModuleID ");
  62. strSql.Append(" FROM OTB_SYS_Authorize AS SA ");
  63. strSql.Append(" INNER JOIN dbo.OTB_SYS_ProgramList AS PL ON SA.ProgramID = PL.ProgramID ");
  64. strSql.Append(" WHERE SA.RuleID IN (SELECT RuleID FROM OTB_SYS_MembersToRule WHERE MemberID = @RuleID) and SA.AllowRight <> '' ");
  65. strSql.Append(" ) ");
  66. strSql.Append(" union all ");
  67. strSql.Append(" SELECT b.ModuleID,b.ParentID ");
  68. strSql.Append(" FROM OTB_SYS_ModuleList as b ");
  69. strSql.Append(" inner join ViewList on b.ModuleID = ViewList.ParentID ");
  70. strSql.Append(" WHERE ViewList.ModuleID<>b.ModuleID ");
  71. strSql.Append(" ), ViewList1(ModuleID,ParentID,Level,AccountNameSort,ModuleIDSort,MainModule, ModuleName,OrderByValue,BgCss) ");
  72. strSql.Append(" as( ");
  73. strSql.Append(" SELECT ModuleID,ParentID,0 as Level,CONVERT(nvarchar(128),ModuleName),CONVERT(nvarchar(128),ModuleID),ModuleID,ModuleName,OrderByValue,BgCss ");
  74. strSql.Append(" FROM OTB_SYS_ModuleList WHERE ParentID='' ");
  75. strSql.Append(" union all ");
  76. strSql.Append(" SELECT a.ModuleID,a.ParentID,b.Level+1,CONVERT(nvarchar(128),b.AccountNameSort+'/'+CONVERT(nvarchar(128),a.ModuleName)),CONVERT(nvarchar(128),b.ModuleIDSort+'/'+CONVERT(nvarchar(128),a.ModuleID)),b.MainModule,a.ModuleName,a.OrderByValue,a.BgCss ");
  77. strSql.Append(" FROM OTB_SYS_ModuleList as a ");
  78. strSql.Append(" inner join ViewList1 as b on b.ModuleID=a.ParentID ");
  79. strSql.Append(" ),ViewList2 (ModuleID,ParentID,Level,AccountNameSort, ModuleIDSort,MainModule,ModuleName,OrderByValue,BgCss) ");
  80. strSql.Append(" as ");
  81. strSql.Append(" ( ");
  82. strSql.Append(" select distinct * FROM ViewList1 WHERE ModuleID in (select ModuleID FROM ViewList) ");
  83. strSql.Append(" ) ");
  84. strSql.Append(" SELECT * FROM (SELECT DISTINCT ModuleID ");
  85. strSql.Append(" , ModuleName ");
  86. strSql.Append(" ,ParentID ");
  87. strSql.Append(" ,'#' AS FILEPATH ");
  88. strSql.Append(" ,'folder' AS ImgPath ");
  89. strSql.Append(" ,AccountNameSort ");
  90. strSql.Append(" ,ModuleIDSort ");
  91. strSql.Append(" ,OrderByValue ");
  92. strSql.Append(" ,ISNULL(BgCss,'red-box')as BgCss ");
  93. strSql.Append(" FROM ViewList2 ");
  94. strSql.Append(" WHERE ModuleID <> REPLACE(@ModuleID,'%','') and ParentID<>'' and CHARINDEX(REPLACE(@ModuleID,'%','') ,ModuleIDSort) > 0 ");
  95. strSql.Append(" UNION ALL ");
  96. strSql.Append(" SELECT DISTINCT ");
  97. strSql.Append(" PL.ProgramID AS ModuleID ");
  98. strSql.Append(" ,ProgramName AS ModuleName ");
  99. strSql.Append(" ,ModuleID AS ParentID ");
  100. strSql.Append(" ,FilePath ");
  101. strSql.Append(" ,ISNULL(ImgPath,'') AS ImgPath ");
  102. strSql.Append(" ,NULL AS AccountNameSort ");
  103. strSql.Append(" ,NULL AS ModuleIDSort ");
  104. strSql.Append(" ,OrderByValue ");
  105. strSql.Append(" ,BgCss ");
  106. strSql.Append(" FROM OTB_SYS_Authorize AS SA ");
  107. strSql.Append(" INNER JOIN dbo.OTB_SYS_ProgramList AS PL ON SA.ProgramID = PL.ProgramID ");
  108. strSql.Append(" WHERE ModuleID = REPLACE(@ModuleID,'%','') ");
  109. strSql.Append(" AND ShowInList = 'Y' ");
  110. strSql.Append(" AND SA.RuleID IN (SELECT RuleID FROM OTB_SYS_MembersToRule WHERE MemberID = @RuleID) ");
  111. strSql.Append(" AND CHARINDEX('View',SA.AllowRight)>0)as abc ");
  112. strSql.Append(" ORDER BY case when FILEPATH ='#' then 0 else 1 end,OrderByValue,ModuleID ; ");
  113. // --Table2
  114. strSql.Append(" SELECT DISTINCT ");
  115. strSql.Append(" PL.ProgramID ");
  116. strSql.Append(" ,ProgramName ");
  117. strSql.Append(" ,ModuleID ");
  118. strSql.Append(" ,pl.FilePath ");
  119. strSql.Append(" ,ISNULL(att.FilePath,'') AS ImgPath ");
  120. strSql.Append(" ,OrderByValue ");
  121. strSql.Append(" FROM [OTB_SYS_ProgramList] AS PL ");
  122. strSql.Append(" left join OTB_SYS_Attachments as att on pl.ImgPath =att.TargetRelationID ");
  123. strSql.Append(" INNER JOIN OTB_SYS_Authorize AS SA ON SA.ProgramID = PL.ProgramID ");
  124. strSql.Append(" WHERE SA.RuleID IN (SELECT RuleID FROM OTB_SYS_MembersToRule WHERE MemberID = @RuleID) AND CHARINDEX('View',SA.AllowRight)>0 ");
  125. strSql.Append(" AND ShowInList = 'Y' ");
  126. strSql.Append(" ORDER BY ModuleID,OrderByValue; ");
  127. strSql.Append(" with ViewList1(ModuleID,ParentID,Level,AccountNameSort,ModuleIDSort, ModuleName,OrderByValue,BgCss) ");
  128. strSql.Append(" as( ");
  129. strSql.Append(" SELECT ModuleID,ParentID,0 as Level,CONVERT(nvarchar(128),ModuleName),CONVERT(nvarchar(128),ModuleID),ModuleName,OrderByValue,BgCss ");
  130. strSql.Append(" FROM OTB_SYS_ModuleList WHERE ParentID='' ");
  131. strSql.Append(" union all ");
  132. strSql.Append(" SELECT a.ModuleID,a.ParentID,b.Level+1,CONVERT(nvarchar(128),b.AccountNameSort+'/'+CONVERT(nvarchar(128),a.ModuleName)),CONVERT(nvarchar(128),b.ModuleIDSort+'/'+CONVERT(nvarchar(128),a.ModuleID)),a.ModuleName,a.OrderByValue,a.BgCss ");
  133. strSql.Append(" FROM OTB_SYS_ModuleList as a ");
  134. strSql.Append(" inner join ViewList1 as b on b.ModuleID=a.ParentID ");
  135. strSql.Append(" ) ");
  136. strSql.Append(" SELECT a.ModuleID,a.ParentID,b.AccountNameSort,b.ModuleIDSort,a.ModuleName FROM dbo.OTB_SYS_ModuleList as a ");
  137. strSql.Append(" inner join ViewList1 as b on a.ModuleID =b.ModuleID ");
  138. strSql.Append(" WHERE a.ModuleID = REPLACE(@ModuleID,'%','') ; ");
  139. //--Table3
  140. strSql.Append(" WITH ViewList (ModuleID,ParentID) ");
  141. strSql.Append(" as ");
  142. strSql.Append(" ( ");
  143. strSql.Append(" SELECT ModuleID,ParentID ");
  144. strSql.Append(" FROM OTB_SYS_ModuleList WHERE ModuleID in ( SELECT DISTINCT ModuleID ");
  145. strSql.Append(" FROM OTB_SYS_Authorize AS SA ");
  146. strSql.Append(" INNER JOIN dbo.OTB_SYS_ProgramList AS PL ON SA.ProgramID = PL.ProgramID ");
  147. strSql.Append(" WHERE SA.RuleID IN (SELECT RuleID FROM OTB_SYS_MembersToRule WHERE MemberID = @RuleID)and SA.AllowRight <>'' ");
  148. strSql.Append(" ) ");
  149. strSql.Append(" union all ");
  150. strSql.Append(" SELECT b.ModuleID,b.ParentID ");
  151. strSql.Append(" FROM OTB_SYS_ModuleList as b ");
  152. strSql.Append(" inner join ViewList on b.ModuleID = ViewList.ParentID ");
  153. strSql.Append(" WHERE ViewList.ModuleID<>b.ModuleID ");
  154. strSql.Append(" ) ");
  155. strSql.Append(" ,ViewList1(ModuleID,ParentID,Level,AccountNameSort,ModuleIDSort,MainModule, ModuleName,OrderByValue,BgCss) ");
  156. strSql.Append(" as ");
  157. strSql.Append(" ( ");
  158. strSql.Append(" SELECT ModuleID,ParentID,0 as Level,CONVERT(nvarchar(128),ModuleName),CONVERT(nvarchar(128),ModuleID),ModuleID,ModuleName,OrderByValue,BgCss ");
  159. strSql.Append(" FROM OTB_SYS_ModuleList WHERE ParentID='' ");
  160. strSql.Append(" union all ");
  161. strSql.Append(" SELECT a.ModuleID,a.ParentID,b.Level+1,CONVERT(nvarchar(128),b.AccountNameSort+'/'+CONVERT(nvarchar(128),a.ModuleName)),CONVERT(nvarchar(128),b.ModuleIDSort+'/'+CONVERT(nvarchar(128),a.ModuleID)),b.MainModule,a.ModuleName,a.OrderByValue,a.BgCss ");
  162. strSql.Append(" FROM OTB_SYS_ModuleList as a ");
  163. strSql.Append(" inner join ViewList1 as b on b.ModuleID=a.ParentID ");
  164. strSql.Append(" ) ");
  165. strSql.Append(" ,ViewList2 (ModuleID,ParentID,Level,AccountNameSort, ModuleIDSort,MainModule,ModuleName,OrderByValue,BgCss) ");
  166. strSql.Append(" as ");
  167. strSql.Append(" ( ");
  168. strSql.Append(" select * FROM ViewList1 WHERE ModuleID in (select ModuleID FROM ViewList) ");
  169. strSql.Append(" ) ");
  170. strSql.Append(" SELECT ModuleID,ParentID,ModuleName,BgCss,'#'as FilePath,'folder' AS ImgPath,'ModuleDefault' as grouptag ,AccountNameSort,ModuleIDSort,'Y' as ShowInList,OrderByValue FROM ViewList2 ");
  171. strSql.Append(" union all ");
  172. strSql.Append(" SELECT DISTINCT ");
  173. strSql.Append(" PL.ProgramID AS ModuleID ");
  174. strSql.Append(" ,ModuleID AS ParentID ");
  175. strSql.Append(" ,ProgramName AS ModuleName,PL.BgCss,PL.FilePath,PL.ImgPath,PL.grouptag,'','',ShowInList ,PL.OrderByValue as OrderByValue ");
  176. strSql.Append(" FROM OTB_SYS_Authorize AS SA ");
  177. strSql.Append(" INNER JOIN dbo.OTB_SYS_ProgramList AS PL ON SA.ProgramID = PL.ProgramID ");
  178. strSql.Append(" WHERE ModuleID in(select ModuleID FROM ViewList2 ) ");
  179. strSql.Append(" AND SA.RuleID IN (SELECT RuleID FROM OTB_SYS_MembersToRule WHERE MemberID = @RULEID) ");
  180. strSql.Append(" AND CHARINDEX('View',SA.AllowRight)>0 ");
  181. strSql.Append(" Order By ParentID,imgpath,OrderByValue ");
  182. SqlParameter[] parameters = {
  183. new SqlParameter("@ModuleID", SqlDbType.VarChar,10),
  184. new SqlParameter("@RuleID", SqlDbType.NVarChar,50) };
  185. parameters[0].Value = ModuleID + "%";
  186. parameters[1].Value = UserRoleId;
  187. //return DbHelperSQL.RunProcedure("OSP_Common_DDL_GetProgramListByModuleIDAndRoleID", parameters, "ds");
  188. return DbHelperSQL.Query(strSql.ToString(), parameters);
  189. }
  190. /// <summary>
  191. /// 取得所有使用者清單
  192. /// modify by Dean 2013/08/07
  193. /// </summary>
  194. /// <param name="NULL"></param>
  195. /// <returns></returns>
  196. /// 使用地方: RoleMaintain_Upd.aspx.cs by Gary 2013/12/23
  197. public DataSet GetUSERACCOUNTList(string NULL)
  198. {
  199. StringBuilder strSql = new StringBuilder();
  200. strSql.Append(" select memberid as ACCOUNT, MemberName as NAME ");
  201. strSql.Append(" from [OTB_SYS_Members] ");
  202. strSql.Append(" where Effective ='Y' ");
  203. strSql.Append(" order by MemberName ");
  204. SqlParameter[] parameters = {
  205. new SqlParameter("@NULL", SqlDbType.VarChar,50),
  206. };
  207. parameters[0].Value = NULL;
  208. //return DbHelperSQL.RunProcedure("OSP_Common_GetUSERACCOUNTList", parameters, "ds");
  209. return DbHelperSQL.Query(strSql.ToString(), parameters);
  210. }
  211. /// <summary>
  212. /// <summary>
  213. /// 取得目前系統內所有沒有被館別使用的大分類
  214. /// </summary>
  215. /// <param name="NULL"></param>
  216. /// <returns></returns>
  217. /// 使用地方: TvlShopMaintain_Upd.aspx.cs by Alina 2014/9/24
  218. public DataSet GetChinWDCCOUNTList(string NULL)
  219. {
  220. StringBuilder strSql = new StringBuilder();
  221. strSql.Append(" SELECT Data_Value as LargeID ,Chin_WD as LargeName ");
  222. strSql.Append(" FROM TRDATA.DBO.TRWORD ");
  223. strSql.Append(" WHERE CLS_CD='TVL_AREA' ");
  224. strSql.Append(" AND Data_Value NOT IN ( ");
  225. strSql.Append(" SELECT col ");
  226. strSql.Append("FROM dbo.[OTB_ADV_TvlShop] ");
  227. strSql.Append(" OUTER apply ");
  228. strSql.Append("( select n.r.value('.', 'varchar(50)') as col ");
  229. strSql.Append(" from (select cast('<r>'+replace(Classifications, '|', '</r><r>')+'</r>' as xml )) ");
  230. strSql.Append(" as s(XMLCol) cross apply s.XMLCol.nodes('r') as n(r) ");
  231. strSql.Append(") xm ");
  232. strSql.Append(" WHERE col<>'' AND col IS NOT NULL ");
  233. strSql.Append(") ");
  234. strSql.Append(" order by Chin_WD ");
  235. SqlParameter[] parameters = {
  236. new SqlParameter("@NULL", SqlDbType.VarChar,50),
  237. };
  238. parameters[0].Value = NULL;
  239. return DbHelperSQL.Query(strSql.ToString(), parameters);
  240. }
  241. #endregion
  242. #region 取流水號
  243. /// <summary>
  244. /// 獲取大類別編號的最大數字
  245. /// </summary>
  246. /// <param name="ArgumentClassID">大類別代號</param>
  247. /// <returns>該類別的最大編號</returns>
  248. /// 使用地方: BasePage.cs by Gary 2013/12/23
  249. public int GetArgumentClassMaxNumber(string ArgumentClassID, string ModifyUser)
  250. {
  251. int rowsAffected;
  252. SqlParameter[] parameters = {
  253. new SqlParameter("@ArgumentClassID", SqlDbType.VarChar,10),
  254. new SqlParameter("@ModifyUser", SqlDbType.VarChar,50)
  255. };
  256. parameters[0].Value = ArgumentClassID;
  257. parameters[1].Value = ModifyUser;
  258. return DbHelperSQL.RunProcedure("OSP_Common_GetArgumentClassMaxNumber", parameters, out rowsAffected);
  259. }
  260. /// <summary>
  261. /// 獲取小類別編號的最大數字
  262. /// </summary>
  263. /// <param name="ArgumentClassID">大類別代號</param>
  264. /// <param name="ArgumentID">小類別代號</param>
  265. /// <returns></returns>
  266. /// 使用地方: BasePage.cs by Gary 2013/12/23
  267. public int GetArgumentMaxNumber(string ArgumentClassID, string ArgumentID, string ModifyUser)
  268. {
  269. int rowsAffected;
  270. SqlParameter[] parameters = {
  271. new SqlParameter("@ArgumentClassID", SqlDbType.VarChar,10),
  272. new SqlParameter("@ArgumentID", SqlDbType.NVarChar,20),
  273. new SqlParameter("@ModifyUser", SqlDbType.VarChar,50),
  274. };
  275. parameters[0].Value = ArgumentClassID;
  276. parameters[1].Value = ArgumentID;
  277. parameters[2].Value = ModifyUser;
  278. return DbHelperSQL.RunProcedure("OSP_Common_GetArgumentMaxNumber", parameters, out rowsAffected);
  279. }
  280. #endregion
  281. #region 取程式列表
  282. #region GetProgramListByRuleId
  283. /// <summary>
  284. /// 依據角色ID取得程式列表信息
  285. /// </summary>
  286. /// <param name="strRuleId">角色ID</param>
  287. /// <returns>程式列表信息</returns>
  288. /// 使用地方: AuthantedPrograms.aspx.cs by Gary 2013/12/23
  289. public DataSet GetProgramListByRuleId(string strRuleId)
  290. {
  291. StringBuilder strSql = new StringBuilder();
  292. strSql.Append(" WITH ModuleLayer (ParentID,ModuleID,ModuleName,OrderByValue,Module_PATH,Module_LEVEL) AS ");
  293. strSql.Append(" (");
  294. strSql.Append(" select ParentID,ModuleID,ModuleName,OrderByValue,CAST(ModuleName as varchar(MAX)),0 AS Module_LEVEL");
  295. strSql.Append(" from OTB_SYS_ModuleList");
  296. strSql.Append(" where ParentID = '' AND ModuleID <> '001'");
  297. strSql.Append(" union all ");
  298. strSql.Append(" select M.ParentID,M.ModuleID,M.ModuleName,M.OrderByValue,CAST(ML.Module_PATH+' > '+M.ModuleName as varchar(MAX)),ML.Module_LEVEL+1");
  299. strSql.Append(" from OTB_SYS_ModuleList M INNER JOIN ModuleLayer ML on M.ParentID=ML.ModuleID");
  300. strSql.Append(" ),");
  301. strSql.Append(" kk as (");
  302. strSql.Append(" select MM.ModuleID as ParentID,MM.ModuleID,'' as ModuleName, PL.ProgramID,PL.ProgramName,FilePath,AllowRight,AllowRight as CanAllowRight,ProgramType,PL.OrderByValue,PL.Effective,PL.Memo,Module_PATH,Module_LEVEL from ModuleLayer MM");
  303. strSql.Append(" LEFT join OTB_SYS_ProgramList PL");
  304. strSql.Append(" on MM.ModuleID = PL.ModuleID");
  305. strSql.Append(" where PL.ProgramType <> 'S'");
  306. strSql.Append(" union all");
  307. strSql.Append(" select ParentID, ModuleID, ModuleName, '' as ProgramID, ModuleName as ProgramName, '#' as FilePath, '' as AllowRight, '' as CanAllowRight, 'M' ProgramType, OrderByValue, '' as Effective, '' as Memo, Module_PATH, Module_LEVEL from ModuleLayer");
  308. strSql.Append(" )");
  309. strSql.Append(" select ROW_NUMBER() OVER(order by Module_PATH, Module_LEVEL, ProgramType, OrderByValue) as RowId, @RuleID as RuleID, ParentID,ModuleID,ModuleName,MP.ProgramID,ProgramName,FilePath,AUT.AllowRight,MP.AllowRight as CanAllowRight,ProgramType as PageType,OrderByValue,Effective,ISNULL(MP.Memo,'') as Memo,Module_PATH,Module_LEVEL from kk as MP");
  310. strSql.Append(" left join OTB_SYS_Authorize AUT ON AUT.ProgramID = MP.ProgramID AND AUT.RuleID = @RuleID where ParentID <> ''");
  311. #region is Marked
  312. //strSql.Append(" SELECT ");
  313. //strSql.Append(" (ROW_NUMBER() OVER(ORDER BY OrderByValue)) as RowId ");
  314. //strSql.Append(" ,NULL AS ProgramID ");
  315. //strSql.Append(" ,ModuleName AS ProgramName ");
  316. //strSql.Append(" ,ModuleID ");
  317. //strSql.Append(" ,ModuleName ");
  318. //strSql.Append(" ,NULL AS FilePath ");
  319. //strSql.Append(" ,OrderByValue ");
  320. //strSql.Append(" ,NULL AS ProgramType ");
  321. //strSql.Append(" ,NULL AS Effective ");
  322. //strSql.Append(" ,Memo ");
  323. //strSql.Append(" ,NULL AS AllowRight ");
  324. //strSql.Append(" ,NULL AS CanAllowRight ");
  325. //strSql.Append(" ,@RuleID AS RuleID ");
  326. //strSql.Append(" ,'M' AS PageType ");
  327. //strSql.Append(" FROM [OTB_SYS_ModuleList] ");
  328. //strSql.Append(" UNION ALL ");
  329. //strSql.Append(" SELECT ");
  330. //strSql.Append(" (ROW_NUMBER() OVER(ORDER BY SML.ModuleID,SPL.OrderByValue)) as RowId ");
  331. //strSql.Append(" ,SPL.ProgramID ");
  332. //strSql.Append(" ,SPL.ProgramName ");
  333. //strSql.Append(" ,SML.ModuleID ");
  334. //strSql.Append(" ,SML.ModuleName ");
  335. //strSql.Append(" ,SPL.FilePath ");
  336. //strSql.Append(" ,SPL.OrderByValue ");
  337. //strSql.Append(" ,SPL.ProgramType ");
  338. //strSql.Append(" ,SPL.Effective ");
  339. //strSql.Append(" ,SPL.Memo ");
  340. //strSql.Append(" ,AUT.AllowRight ");
  341. //strSql.Append(" ,SPL.AllowRight AS CanAllowRight ");
  342. //strSql.Append(" ,@RuleID AS RuleID ");
  343. //strSql.Append(" ,'P' AS PageType ");
  344. //strSql.Append(" FROM OTB_SYS_ProgramList SPL ");
  345. //strSql.Append(" INNER JOIN OTB_SYS_ModuleList SML ON SPL.ModuleID = SML.ModuleID ");
  346. //strSql.Append(" LEFT JOIN OTB_SYS_Authorize AUT ON AUT.ProgramID = SPL.ProgramID AND AUT.RuleID = @RuleID ");
  347. //strSql.Append(" WHERE SPL.Effective = 'Y' AND SPL.ProgramType <> 'S' ");
  348. //strSql.Append(" ORDER BY ModuleID,Pagetype,ProgramID ");
  349. #endregion
  350. SqlParameter[] parameters = {
  351. new SqlParameter("@RuleID", SqlDbType.VarChar,20)
  352. };
  353. parameters[0].Value = strRuleId;
  354. return DbHelperSQL.Query(strSql.ToString(), parameters);
  355. //return DbHelperSQL.RunProcedure("OSP_Common_GetProgramListByRuleId", parameters, "ds");
  356. }
  357. #endregion
  358. #endregion
  359. #region 取Text值
  360. /// 詢問過Dean 主要工作取日期用 by Gary 2013/12/23
  361. public String GetDate()
  362. {
  363. return DbHelperSQL.GetSingle("OSP_Common_DDL_GetDATA").ToString();
  364. }
  365. #endregion
  366. #region 取參數值列表
  367. #region GetArgumentListByArgumentClassID
  368. /// <summary>
  369. /// 依據參數類別ID取得參數值
  370. /// </summary>
  371. /// <param name="strArgumentClassID">參數類別ID</param>
  372. /// <returns>參數值列表信息</returns>
  373. /// 使用地方:HRMMaintain_Upd.aspx.cs 、 MemberMaintain_Upd.aspx.cs by Gary 2013/12/23
  374. public DataSet GetArgumentListByArgumentClassID(string strArgumentClassID)
  375. {
  376. StringBuilder strSql = new StringBuilder();
  377. strSql.Append(" SELECT ");
  378. strSql.Append(" ArgumentValue,ArgumentID,OrderByValue ");
  379. strSql.Append(" FROM [OTB_SYS_Arguments] ");
  380. strSql.Append(" WHERE (ArgumentClassID = @ArgumentClassID OR @ArgumentClassID IS NULL OR @ArgumentClassID='') order by OrderByValue ");
  381. SqlParameter[] parameters = {
  382. new SqlParameter("@ArgumentClassID", SqlDbType.VarChar,10) };
  383. parameters[0].Value = strArgumentClassID;
  384. return DbHelperSQL.Query(strSql.ToString(), parameters);
  385. //return DbHelperSQL.RunProcedure("OSP_Common_GetArgumentListByArgumentClassID", parameters, "ArgumentList");
  386. }
  387. #endregion
  388. #endregion
  389. #region 內部系統
  390. /// <summary>
  391. /// 獲取系統參數
  392. /// </summary>
  393. /// <param name="strItem">參數名稱</param>
  394. /// <param name="SettingValueOrMemo">參數取向值</param>
  395. /// <returns></returns>
  396. public string GetSystemSetting(string strItem, string SettingValueOrMemo)
  397. {
  398. StringBuilder sbSql = new StringBuilder();
  399. if (SettingValueOrMemo == "SettingValue")
  400. {
  401. sbSql.AppendLine(" SELECT ISNULL(SettingValue,'') AS SettingValue FROM dbo.OTB_SYS_SystemSetting WHERE SettingItem=@SettingItem ");
  402. }
  403. else
  404. {
  405. sbSql.AppendLine(" SELECT ISNULL(Memo,'') AS Memo FROM dbo.OTB_SYS_SystemSetting WHERE SettingItem=@SettingItem ");
  406. }
  407. SqlParameter[] parameters = {
  408. new SqlParameter("@SettingItem", SqlDbType.NVarChar,50)};
  409. parameters[0].Value = strItem;
  410. object obj = DbHelperSQL.GetSingle(sbSql.ToString(), parameters);
  411. return obj == null ? "" : obj.ToString();
  412. }
  413. #endregion
  414. /// <summary>
  415. ///
  416. /// </summary>
  417. /// <param name="Type"></param>
  418. /// <param name="Flag"></param>
  419. /// <param name="ModifyUser"></param>
  420. /// <returns></returns>
  421. /// 使用地方:BasePage.cs 、 QuotationBorneMaintain_Upd.aspx.cs 、 QuotationWorkMaintain_Upd.aspx.cs 、
  422. /// ArgumentClassMaintain_Upd.aspx.cs 、 ModuleMaintain_Upd.aspx.cs 、 RoleMaintain_Upd.aspx.cs by Gary 2013/12/23
  423. public int GetMaxNumberByType(string Type, string Flag, string ModifyUser)
  424. {
  425. StringBuilder sbBuilder = new StringBuilder();
  426. //sbBuilder.AppendLine("DECLARE @Type NVARCHAR(3)");
  427. //sbBuilder.AppendLine("DECLARE @Flag NVARCHAR(1)");
  428. //sbBuilder.AppendLine("DECLARE @ModifyUser NVARCHAR(50)");
  429. //sbBuilder.AppendLine("SET @Type = ''");
  430. //sbBuilder.AppendLine("SET @Flag = 'D'");
  431. //sbBuilder.AppendLine("SET @ModifyUser = ''");
  432. sbBuilder.AppendLine("DECLARE @MaxNumberCatData INT");
  433. sbBuilder.AppendLine("SET @MaxNumberCatData = 0");
  434. sbBuilder.AppendLine("IF @Flag = 'Y' OR @Flag = 'Year'");
  435. sbBuilder.AppendLine(" BEGIN");
  436. sbBuilder.AppendLine(" SELECT @MaxNumberCatData = ISNULL(CountMax,0) ");
  437. sbBuilder.AppendLine(" FROM OTB_SYS_MaxNumber");
  438. sbBuilder.AppendLine(" WHERE [Type] = @Type AND [CountYear] = YEAR(GETDATE()) AND ([CountMonth] IS NULL OR [CountMonth]='') AND ([CountDay] IS NULL OR [CountDay]='')");
  439. sbBuilder.AppendLine("PRINT @Type");
  440. sbBuilder.AppendLine("PRINT @Flag");
  441. sbBuilder.AppendLine("PRINT @MaxNumberCatData");
  442. sbBuilder.AppendLine(" END");
  443. sbBuilder.AppendLine("ELSE IF @Flag = 'M' OR @Flag = 'Month'");
  444. sbBuilder.AppendLine(" BEGIN");
  445. sbBuilder.AppendLine(" SELECT @MaxNumberCatData = ISNULL(CountMax,0) ");
  446. sbBuilder.AppendLine(" FROM OTB_SYS_MaxNumber");
  447. sbBuilder.AppendLine(" WHERE [Type] = @Type AND [CountYear] = YEAR(GETDATE()) AND [CountMonth] = MONTH(GETDATE()) AND ([CountDay] IS NULL OR [CountDay]='')");
  448. sbBuilder.AppendLine(" END");
  449. sbBuilder.AppendLine("ELSE IF @Flag = 'D' OR @Flag = 'Day'");
  450. sbBuilder.AppendLine(" BEGIN");
  451. sbBuilder.AppendLine(" SELECT @MaxNumberCatData = ISNULL(CountMax,0) ");
  452. sbBuilder.AppendLine(" FROM OTB_SYS_MaxNumber");
  453. sbBuilder.AppendLine(" WHERE [Type] = @Type AND [CountYear] = YEAR(GETDATE()) AND [CountMonth] = MONTH(GETDATE()) AND [CountDay] = DAY(GETDATE())");
  454. sbBuilder.AppendLine(" END");
  455. sbBuilder.AppendLine("ELSE IF @Flag = 'O' OR @Flag = 'Other'");
  456. sbBuilder.AppendLine(" BEGIN");
  457. sbBuilder.AppendLine(" SELECT @MaxNumberCatData = ISNULL(CountMax,0) ");
  458. sbBuilder.AppendLine(" FROM OTB_SYS_MaxNumber");
  459. sbBuilder.AppendLine(" WHERE [Type] = @Type AND ([CountYear] IS NULL OR [CountYear]='') AND ([CountMonth] IS NULL OR [CountMonth]='') AND ([CountDay] IS NULL OR [CountDay]='')");
  460. sbBuilder.AppendLine(" END");
  461. sbBuilder.AppendLine("IF @MaxNumberCatData > 0");
  462. sbBuilder.AppendLine(" BEGIN");
  463. sbBuilder.AppendLine(" IF @Flag = 'Y' OR @Flag = 'Year'");
  464. sbBuilder.AppendLine(" BEGIN");
  465. sbBuilder.AppendLine(" UPDATE OTB_SYS_MaxNumber SET ");
  466. sbBuilder.AppendLine(" CountMax = ISNULL(CountMax,0) + 1,@MaxNumberCatData =@MaxNumberCatData+1,");
  467. sbBuilder.AppendLine(" --Add By Vivian, 修改更新資料時更新最新修改人和最新修改時間的問題, 2013/05/27, Start.");
  468. sbBuilder.AppendLine(" ModifyUser = @ModifyUser,");
  469. sbBuilder.AppendLine(" ModifyDate = GETDATE()");
  470. sbBuilder.AppendLine(" --Add By Vivian, 修改更新資料時更新最新修改人和最新修改時間的問題, 2013/05/27, End.");
  471. sbBuilder.AppendLine(" WHERE [Type] = @Type AND [CountYear] = YEAR(GETDATE()) AND ([CountMonth] IS NULL OR [CountMonth]='') AND ([CountDay] IS NULL OR [CountDay]='')");
  472. sbBuilder.AppendLine(" END");
  473. sbBuilder.AppendLine(" ELSE IF @Flag = 'M' OR @Flag = 'Month'");
  474. sbBuilder.AppendLine(" BEGIN");
  475. sbBuilder.AppendLine(" UPDATE OTB_SYS_MaxNumber SET ");
  476. sbBuilder.AppendLine(" CountMax = ISNULL(CountMax,0) + 1,@MaxNumberCatData =@MaxNumberCatData+1,");
  477. sbBuilder.AppendLine(" --Add By Vivian, 修改更新資料時更新最新修改人和最新修改時間的問題, 2013/05/27, Start.");
  478. sbBuilder.AppendLine(" ModifyUser = @ModifyUser,");
  479. sbBuilder.AppendLine(" ModifyDate = GETDATE()");
  480. sbBuilder.AppendLine(" --Add By Vivian, 修改更新資料時更新最新修改人和最新修改時間的問題, 2013/05/27, End.");
  481. sbBuilder.AppendLine(" WHERE [Type] = @Type AND [CountYear] = YEAR(GETDATE()) AND [CountMonth] = MONTH(GETDATE()) AND ([CountDay] IS NULL OR [CountDay]='')");
  482. sbBuilder.AppendLine(" END");
  483. sbBuilder.AppendLine(" ELSE IF @Flag = 'D' OR @Flag = 'Day'");
  484. sbBuilder.AppendLine(" BEGIN");
  485. sbBuilder.AppendLine(" UPDATE OTB_SYS_MaxNumber SET ");
  486. sbBuilder.AppendLine(" CountMax = ISNULL(CountMax,0) + 1,@MaxNumberCatData =@MaxNumberCatData+1,");
  487. sbBuilder.AppendLine(" --Add By Vivian, 修改更新資料時更新最新修改人和最新修改時間的問題, 2013/05/27, Start.");
  488. sbBuilder.AppendLine(" ModifyUser = @ModifyUser,");
  489. sbBuilder.AppendLine(" ModifyDate = GETDATE()");
  490. sbBuilder.AppendLine(" --Add By Vivian, 修改更新資料時更新最新修改人和最新修改時間的問題, 2013/05/27, End.");
  491. sbBuilder.AppendLine(" WHERE [Type] = @Type AND [CountYear] = YEAR(GETDATE()) AND [CountMonth] = MONTH(GETDATE()) AND [CountDay] = DAY(GETDATE())");
  492. sbBuilder.AppendLine(" END");
  493. sbBuilder.AppendLine(" ELSE IF @Flag = 'O' OR @Flag = 'Other'");
  494. sbBuilder.AppendLine(" BEGIN");
  495. sbBuilder.AppendLine(" UPDATE OTB_SYS_MaxNumber SET ");
  496. sbBuilder.AppendLine(" CountMax = ISNULL(CountMax,0) + 1,@MaxNumberCatData =@MaxNumberCatData+1,");
  497. sbBuilder.AppendLine(" --Add By Vivian, 修改更新資料時更新最新修改人和最新修改時間的問題, 2013/05/27, Start.");
  498. sbBuilder.AppendLine(" ModifyUser = @ModifyUser,");
  499. sbBuilder.AppendLine(" ModifyDate = GETDATE()");
  500. sbBuilder.AppendLine(" --Add By Vivian, 修改更新資料時更新最新修改人和最新修改時間的問題, 2013/05/27, End.");
  501. sbBuilder.AppendLine(" WHERE [Type] = @Type AND ([CountYear] IS NULL OR [CountYear]='') AND ([CountMonth] IS NULL OR [CountMonth]='') AND ([CountDay] IS NULL OR [CountDay]='')");
  502. sbBuilder.AppendLine(" END");
  503. sbBuilder.AppendLine(" END");
  504. sbBuilder.AppendLine("ELSE");
  505. sbBuilder.AppendLine(" BEGIN");
  506. sbBuilder.AppendLine(" SET @MaxNumberCatData = 1");
  507. sbBuilder.AppendLine(" IF @Flag = 'Y' OR @Flag = 'Year'");
  508. sbBuilder.AppendLine(" BEGIN");
  509. sbBuilder.AppendLine(" INSERT INTO OTB_SYS_MaxNumber([Type],CountYear,CountMonth,CountDay,CountMax,CreateUser,CreateDate,ModifyUser,ModifyDate)VALUES(@Type,YEAR(GETDATE()),'','',1,@ModifyUser, GETDATE(), @ModifyUser, GETDATE())");
  510. sbBuilder.AppendLine(" END");
  511. sbBuilder.AppendLine(" ELSE IF @Flag = 'M' OR @Flag = 'Month'");
  512. sbBuilder.AppendLine(" BEGIN");
  513. sbBuilder.AppendLine(" INSERT INTO OTB_SYS_MaxNumber([Type],CountYear,CountMonth,CountDay,CountMax,CreateUser,CreateDate,ModifyUser,ModifyDate)VALUES(@Type,YEAR(GETDATE()),MONTH(GETDATE()),'',1,@ModifyUser, GETDATE(), @ModifyUser, GETDATE())");
  514. sbBuilder.AppendLine(" END");
  515. sbBuilder.AppendLine(" ELSE IF @Flag = 'D' OR @Flag = 'Day'");
  516. sbBuilder.AppendLine(" BEGIN");
  517. sbBuilder.AppendLine(" INSERT INTO OTB_SYS_MaxNumber([Type],CountYear,CountMonth,CountDay,CountMax,CreateUser,CreateDate,ModifyUser,ModifyDate)VALUES(@Type,YEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE()),1,@ModifyUser, GETDATE(), @ModifyUser, GETDATE())");
  518. sbBuilder.AppendLine(" END");
  519. sbBuilder.AppendLine(" ELSE IF @Flag = 'O' OR @Flag = 'Other'");
  520. sbBuilder.AppendLine(" BEGIN");
  521. sbBuilder.AppendLine(" INSERT INTO OTB_SYS_MaxNumber([Type],CountYear,CountMonth,CountDay,CountMax,CreateUser,CreateDate,ModifyUser,ModifyDate)VALUES(@Type,'','','',1,@ModifyUser, GETDATE(), @ModifyUser, GETDATE())");
  522. sbBuilder.AppendLine(" END");
  523. sbBuilder.AppendLine(" END");
  524. sbBuilder.AppendLine(" SELECT @MaxNumberCatData");
  525. SqlParameter[] parameters = {
  526. new SqlParameter("@Type", SqlDbType.VarChar,50)
  527. ,new SqlParameter("@Flag", SqlDbType.Char,1)
  528. ,new SqlParameter("@ModifyUser", SqlDbType.VarChar,50)
  529. };
  530. parameters[0].Value = Type;
  531. parameters[1].Value = Flag;
  532. parameters[2].Value = ModifyUser;
  533. //return DbHelperSQL.RunProcedure("proc_Common_GetMaxNumberByType", parameters, out rowsAffected);
  534. object obj = DbHelperSQL.GetSingle(sbBuilder.ToString(), parameters);
  535. return Convert.ToInt32(obj);
  536. }
  537. /// <summary>
  538. /// 依據文件來源獲取文件列表
  539. /// </summary>
  540. /// <param name="SourceRelationID"></param>
  541. /// <returns></returns>
  542. /// 使用地方:AsyncFileUpload.ascx.cs 、 AsyncFileUploadClass.aspx.cs 、 AsyncFileUploadPrtOrPub.aspx.cs 、
  543. /// AsyncFileUpView.aspx.cs 、 UploadFileView.aspx.cs 、 UploadHandler.aspx.cs by Gary 2013/12/23
  544. public DataSet GetFileListBySourceRelationID(string SourceRelationID)
  545. {
  546. StringBuilder strSql = new StringBuilder();
  547. strSql.Append(" SELECT ");
  548. strSql.Append(" GUID,SourceRelationID,FileName,FilePath,FileSize ");
  549. strSql.Append(" FROM dbo.OTB_SYS_Document ");
  550. strSql.Append(" WHERE SourceRelationID= @SourceRelationID OR GUID= @SourceRelationID ");
  551. SqlParameter[] parameters = {
  552. new SqlParameter("@SourceRelationID", SqlDbType.VarChar,36)};
  553. parameters[0].Value = SourceRelationID;
  554. return DbHelperSQL.Query(strSql.ToString(), parameters);
  555. }
  556. /// <summary>
  557. /// 獲得資料列表
  558. /// </summary>
  559. /// 使用地方:ucExportEquList.ascx.cs by Gary 2013/12/23
  560. public DataSet GetList(int StartRecordIndex, int EndRecordIndex, string CustomerClass, string CustomerID, string CustomerName, string ContectName, string TEL, string TaxNumber, string Status, string SortExpression)
  561. {
  562. SqlParameter[] parameters = {
  563. new SqlParameter("@StartRecordIndex", SqlDbType.Int)
  564. ,new SqlParameter("@EndRecordIndex", SqlDbType.Int)
  565. ,new SqlParameter("@CustomerClass", SqlDbType.NVarChar,20)
  566. ,new SqlParameter("@CustomerID", SqlDbType.VarChar,36)
  567. ,new SqlParameter("@CustomerName", SqlDbType.NVarChar,100)
  568. ,new SqlParameter("@ContectName", SqlDbType.NVarChar,100)
  569. ,new SqlParameter("@TEL", SqlDbType.NVarChar,50)
  570. ,new SqlParameter("@TaxNumber", SqlDbType.VarChar,20)
  571. ,new SqlParameter("@Status", SqlDbType.Char,1)
  572. ,new SqlParameter("@SortExpression", SqlDbType.NVarChar,500)
  573. };
  574. parameters[0].Value = StartRecordIndex;
  575. parameters[1].Value = EndRecordIndex;
  576. parameters[2].Value = CustomerClass;
  577. parameters[3].Value = CustomerID;
  578. parameters[4].Value = "%" + CustomerName + "%";
  579. parameters[5].Value = "%" + ContectName + "%";
  580. parameters[6].Value = "%" + TEL + "%";
  581. parameters[7].Value = TaxNumber;
  582. parameters[8].Value = Status;
  583. parameters[9].Value = SortExpression;
  584. return DbHelperSQL.RunProcedure("OSP_Common_GetCustomerListByCustomerID", parameters, "ds");
  585. }
  586. /// <summary>
  587. /// 更新排序欄位
  588. /// </summary>
  589. /// <param name="OldOrderByValue">舊值</param>
  590. /// <param name="NewOrderByValue">新值</param>
  591. /// <param name="FeildName">欄位名稱</param>
  592. /// <param name="MDFUserFeild">修改的欄位名稱</param>
  593. /// <param name="ModifyUser">修改的欄位名稱的值</param>
  594. /// <param name="MDFDateFeild">修改的欄位名稱</param>
  595. /// <param name="TableName">表名稱</param>
  596. /// <param name="Where1">條件1</param>
  597. /// <param name="Where2">條件2</param>
  598. /// <returns></returns>
  599. public bool UpdateOrderByValue(string OldOrderByValue, string NewOrderByValue, string FeildName, string MDFUserFeild, string ModifyUser, string MDFDateFeild, string TableName, string Where1, string Where2)
  600. {
  601. List<CommandInfo> lstCommandInfo = new List<CommandInfo>(); //定義事物執行的所有SQL
  602. StringBuilder strSql = new StringBuilder();
  603. strSql.Append(" DECLARE @strSQL NVARCHAR(1000)");
  604. strSql.Append(" BEGIN");
  605. strSql.Append(" PRINT @NewOrderByValue");
  606. strSql.Append(" PRINT @OldOrderByValue");
  607. strSql.Append(" set @strSQL=N'UPDATE '+ @TableName+'");
  608. strSql.Append(" SET '+@FeildName+' = 88888 ");
  609. strSql.Append(" WHERE '+@FeildName+' = '+@OldOrderByValue ");
  610. strSql.Append(" IF @Where <>''");
  611. strSql.Append(" SET @strSQL =@strSQL + ' AND ' + @Where");
  612. strSql.Append(" print @strSQL");
  613. strSql.Append(" exec sp_executesql @strSQL");
  614. strSql.Append(" ");
  615. strSql.Append(" IF CONVERT(INT, @NewOrderByValue) > CONVERT(INT,@OldOrderByValue)");
  616. strSql.Append(" BEGIN");//由小變大,OLD<-1<=NEW
  617. strSql.Append(" SET @strSQL=N'UPDATE '+@TableName+'");
  618. strSql.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) - 1 ");
  619. strSql.Append(" WHERE '+@FeildName+' >= '+@OldOrderByValue + ' AND '+@FeildName+'<='+@NewOrderByValue+' '");
  620. strSql.Append(" IF @Where <>''");
  621. strSql.Append(" SET @strSQL =@strSQL + ' AND ' + @Where");
  622. strSql.Append(" print @strSQL");
  623. strSql.Append(" exec sp_executesql @strSQL");
  624. strSql.Append(" END");
  625. strSql.Append(" ELSE");
  626. strSql.Append(" BEGIN");//由大變小,@NewOrderByValue<=+1<@OldOrderByValue
  627. strSql.Append(" SET @strSQL=N'UPDATE '+@TableName+'");
  628. strSql.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) + 1 ");
  629. strSql.Append(" WHERE '+@FeildName+' <= '+@OldOrderByValue + ' AND '+@FeildName+'>='+@NewOrderByValue+' '");
  630. strSql.Append(" IF @Where <>''");
  631. strSql.Append(" SET @strSQL =@strSQL + ' AND ' + @Where");
  632. strSql.Append(" print @strSQL");
  633. strSql.Append(" exec sp_executesql @strSQL");
  634. strSql.Append(" END");
  635. strSql.Append(" set @strSQL=N'UPDATE '+ @TableName+'");
  636. strSql.Append(" SET '+@FeildName+' = '+@NewOrderByValue+");
  637. strSql.Append(" ' WHERE '+@FeildName+' = 88888' ");
  638. strSql.Append(" IF @Where <>''");
  639. strSql.Append(" SET @strSQL =@strSQL + ' AND ' + @Where");
  640. strSql.Append(" print @strSQL");
  641. strSql.Append(" exec sp_executesql @strSQL");
  642. strSql.Append(" END");
  643. SqlParameter[] parametersChangeOrder = {
  644. new SqlParameter("@OldOrderByValue", SqlDbType.NVarChar,10)
  645. ,new SqlParameter("@NewOrderByValue", SqlDbType.NVarChar,10)
  646. ,new SqlParameter("@FeildName", SqlDbType.NVarChar,50)
  647. ,new SqlParameter("@TableName", SqlDbType.NVarChar,50)
  648. ,new SqlParameter("@Where", SqlDbType.NVarChar,500)
  649. };
  650. parametersChangeOrder[0].Value = OldOrderByValue;
  651. parametersChangeOrder[1].Value = NewOrderByValue;
  652. parametersChangeOrder[2].Value = FeildName;
  653. parametersChangeOrder[3].Value = TableName;
  654. parametersChangeOrder[4].Value = Where1;
  655. CommandInfo o_CommandInfo = new CommandInfo(); //定義每一個SQL,代表修改
  656. o_CommandInfo.CommandText = strSql.ToString();
  657. o_CommandInfo.Parameters = parametersChangeOrder;
  658. lstCommandInfo.Add(o_CommandInfo); //添加當前的SQL
  659. strSql.Clear();
  660. strSql.Append(" DECLARE @strSQL NVARCHAR(1000)");
  661. strSql.Append(" BEGIN");
  662. strSql.Append(" PRINT @NewOrderByValue");
  663. strSql.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
  664. strSql.Append(" SET ' +@MDFUserFeild+' ='''+@ModifyUser+''','+@MDFDateFeild+' =GETDATE() WHERE '+@Where");
  665. strSql.Append(" PRINT @strSQL ");
  666. strSql.Append(" exec sp_executesql @strSQL");
  667. strSql.Append(" END");
  668. SqlParameter[] parameters = {
  669. new SqlParameter("@NewOrderByValue", SqlDbType.NVarChar,10)
  670. ,new SqlParameter("@FeildName", SqlDbType.NVarChar,50)
  671. ,new SqlParameter("@MDFUserFeild", SqlDbType.NVarChar,50)
  672. ,new SqlParameter("@ModifyUser", SqlDbType.VarChar,50)
  673. ,new SqlParameter("@MDFDateFeild", SqlDbType.NVarChar,50)
  674. ,new SqlParameter("@TableName", SqlDbType.NVarChar,50)
  675. ,new SqlParameter("@Where", SqlDbType.NVarChar,500)
  676. };
  677. parameters[0].Value = NewOrderByValue;
  678. parameters[1].Value = FeildName;
  679. parameters[2].Value = MDFUserFeild;
  680. parameters[3].Value = ModifyUser;
  681. parameters[4].Value = MDFDateFeild;
  682. parameters[5].Value = TableName;
  683. parameters[6].Value = Where2;
  684. o_CommandInfo = new CommandInfo(); //定義每一個SQL,代表修改
  685. o_CommandInfo.CommandText = strSql.ToString();
  686. o_CommandInfo.Parameters = parameters;
  687. lstCommandInfo.Add(o_CommandInfo); //添加當前的SQL
  688. if (DbHelperSQL.ExecuteSqlTran(lstCommandInfo) > 0)
  689. {
  690. return true;
  691. }
  692. else
  693. {
  694. return false;
  695. }
  696. //List<CommandInfo> lstCommandInfo = new List<CommandInfo>(); //定義事物執行的所有SQL
  697. //SqlParameter[] parametersChangeOrder = {
  698. // new SqlParameter("@OldOrderByValue", SqlDbType.NVarChar,10)
  699. // ,new SqlParameter("@NewOrderByValue", SqlDbType.NVarChar,10)
  700. // ,new SqlParameter("@FeildName", SqlDbType.NVarChar,50)
  701. // ,new SqlParameter("@TableName", SqlDbType.NVarChar,50)
  702. // ,new SqlParameter("@Where", SqlDbType.NVarChar,500)
  703. // };
  704. //parametersChangeOrder[0].Value = OldOrderByValue;
  705. //parametersChangeOrder[1].Value = NewOrderByValue;
  706. //parametersChangeOrder[2].Value = FeildName;
  707. //parametersChangeOrder[3].Value = TableName;
  708. //parametersChangeOrder[4].Value = Where1;
  709. //CommandInfo o_CommandInfo = new CommandInfo(); //定義每一個SQL,代表修改
  710. //o_CommandInfo.CommandText = "OSP_Common_UpdateOrderByValue";
  711. //o_CommandInfo.Parameters = parametersChangeOrder;
  712. //lstCommandInfo.Add(o_CommandInfo); //添加當前的SQL
  713. //SqlParameter[] parameters = {
  714. // new SqlParameter("@NewOrderByValue", SqlDbType.NVarChar,10)
  715. // ,new SqlParameter("@FeildName", SqlDbType.NVarChar,50)
  716. // ,new SqlParameter("@MDFUserFeild", SqlDbType.NVarChar,50)
  717. // ,new SqlParameter("@ModifyUser", SqlDbType.VarChar,50)
  718. // ,new SqlParameter("@MDFDateFeild", SqlDbType.NVarChar,50)
  719. // ,new SqlParameter("@TableName", SqlDbType.NVarChar,50)
  720. // ,new SqlParameter("@Where", SqlDbType.NVarChar,500)
  721. // };
  722. //parameters[0].Value = NewOrderByValue;
  723. //parameters[1].Value = FeildName;
  724. //parameters[2].Value = MDFUserFeild;
  725. //parameters[3].Value = ModifyUser;
  726. //parameters[4].Value = MDFDateFeild;
  727. //parameters[5].Value = TableName;
  728. //parameters[6].Value = Where2;
  729. //o_CommandInfo = new CommandInfo(); //定義每一個SQL,代表修改
  730. //o_CommandInfo.CommandText = "OSP_Common_UpdateCurrentRowOrderByValue";
  731. //o_CommandInfo.Parameters = parameters;
  732. //lstCommandInfo.Add(o_CommandInfo); //添加當前的SQL
  733. //if (DbHelperSQL.ExecuteSqlTran(lstCommandInfo) > 0)
  734. //{
  735. // return true;
  736. //}
  737. //else
  738. //{
  739. // return false;
  740. //}
  741. }
  742. /// <summary>
  743. /// 獲得資料列表
  744. /// </summary>
  745. public DataSet GetTrWord(string strWhere)
  746. {
  747. StringBuilder strSql = new StringBuilder();
  748. strSql.Append(" SELECT * FROM TRWORD ");
  749. if (strWhere.Trim() != "")
  750. {
  751. strSql.Append(" where " + strWhere);
  752. }
  753. return DbHelperSQL.Query(strSql.ToString());
  754. }
  755. #region 共用型更改MemberID
  756. /// <summary>
  757. /// 共用型更改MemberID
  758. /// Create by Gary 2014/08/13
  759. /// </summary>
  760. /// <param name="strTableName">資料表名稱</param>
  761. /// <param name="strMemberField">MemberField欄位名稱</param>
  762. /// <param name="strMemberID">新的MemberID</param>
  763. /// <param name="strModifyField">更改人欄位</param>
  764. /// <param name="strUserID">更改人ID</param>
  765. /// <param name="strModifyDateField">更改時間欄位</param>
  766. /// <param name="strWhere">Where條件,請務必給正確的條件,以免更新錯誤</param>
  767. /// <returns>是否更新成功</returns>
  768. /// 使用地方: ChangeMember_Pop.aspx.cs by Gary 2014/08/13
  769. public bool UpdateMemberID(string strTableName, string strMemberField, string strMemberID, string strModifyField, string strUserID, string strModifyDateField, string strWhere)
  770. {
  771. StringBuilder strSql = new StringBuilder();
  772. strSql.Append(" update " + strTableName);
  773. strSql.Append(" set " + strMemberField + " =@MemberID, ");
  774. strSql.Append(strModifyField + " =@UserID, ");
  775. strSql.Append(strModifyDateField + " =GetDate()");
  776. if (strWhere.Trim() != "")
  777. {
  778. strSql.Append(" where " + strWhere);
  779. }
  780. else
  781. {
  782. strSql.Append(" where 1=0");//避免參數沒送正確時,導致全部資料都被引響
  783. }
  784. SqlParameter[] parameters = {
  785. new SqlParameter("@MemberID", SqlDbType.VarChar,18),
  786. new SqlParameter("@UserID", SqlDbType.VarChar,18)
  787. };
  788. parameters[0].Value = strMemberID;
  789. parameters[1].Value = strUserID;
  790. int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
  791. if (rows > 0)
  792. {
  793. return true;
  794. }
  795. else
  796. {
  797. return false;
  798. }
  799. }
  800. #endregion
  801. #region 可刪除的資料
  802. /// <summary>
  803. /// 通過專案編號獲取該專案中所有合約的附件資料列表
  804. /// </summary>
  805. /// 使用地方:UpLoadCTListFileView.ascx.cs by Gary 2013/12/23
  806. public DataSet GetContractListFileListByProjectID(string ProjectID)
  807. {
  808. SqlParameter[] parameters = {
  809. new SqlParameter("@ProjectID", SqlDbType.VarChar,36)};
  810. parameters[0].Value = ProjectID;
  811. return DbHelperSQL.RunProcedure("OSP_TB_Common_GetContractListFileListByProjectID", parameters, "FileList");
  812. }
  813. #endregion
  814. }
  815. }