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.

570 lines
30 KiB

  1. using System;
  2. using System.Data;
  3. using System.Text;
  4. using System.Data.SqlClient;
  5. using OT.IDAL;
  6. using DBUtility;//Please add references
  7. using System.Collections.Generic;
  8. namespace OT.SQLServerDAL
  9. {
  10. /// <summary>
  11. /// 資料訪問類:OTB_SYS_Arguments
  12. /// </summary>
  13. public partial class OTB_SYS_Arguments : IOTB_SYS_Arguments
  14. {
  15. public OTB_SYS_Arguments()
  16. { }
  17. #region Method
  18. /// <summary>
  19. /// 是否存在該記錄
  20. /// </summary>
  21. public bool Exists(string ArgumentClassID, string ArgumentID)
  22. {
  23. int rowsAffected;
  24. StringBuilder strSql = new StringBuilder();
  25. strSql.Append("select count(1) from OTB_SYS_Arguments");
  26. strSql.Append(" where ArgumentClassID=@ArgumentClassID and ArgumentID=@ArgumentID ");
  27. SqlParameter[] parameters = {
  28. new SqlParameter("@ArgumentClassID", SqlDbType.VarChar,10),
  29. new SqlParameter("@ArgumentID", SqlDbType.VarChar,200)
  30. };
  31. parameters[0].Value = ArgumentClassID;
  32. parameters[1].Value = ArgumentID;
  33. return DbHelperSQL.Exists(strSql.ToString(), parameters);
  34. //int result = DbHelperSQL.RunProcedure("OSP_OTB_SYS_Arguments_Exists", parameters, out rowsAffected);
  35. //if (result == 1)
  36. //{
  37. // return true;
  38. //}
  39. //else
  40. //{
  41. // return false;
  42. //}
  43. }
  44. /// <summary>
  45. /// 增加一條資料
  46. /// </summary>
  47. public bool Add(OT.Model.OTB_SYS_Arguments model)
  48. {
  49. StringBuilder strSql = new StringBuilder();
  50. strSql.Append(" INSERT INTO [OTB_SYS_Arguments]( ");
  51. strSql.Append(" [ArgumentClassID],[ArgumentID],[ArgumentValue],[OrderByValue],[DelStatus],[Effective],[Memo],[CreateUser],[CreateDate],[ModifyUser],[ModifyDate] ");
  52. strSql.Append(" )VALUES( ");
  53. strSql.Append(" @ArgumentClassID,@ArgumentID,@ArgumentValue,@OrderByValue,@DelStatus,@Effective,@Memo,@CreateUser,GETDATE(),@CreateUser,GETDATE()) ");
  54. SqlParameter[] parametersAdd = {
  55. new SqlParameter("@ArgumentClassID", SqlDbType.VarChar,10),
  56. new SqlParameter("@ArgumentID", SqlDbType.VarChar,200),
  57. new SqlParameter("@ArgumentValue", SqlDbType.NVarChar,200),
  58. new SqlParameter("@OrderByValue", SqlDbType.Int,4),
  59. new SqlParameter("@LevelOfArgument", SqlDbType.Int,4),
  60. new SqlParameter("@ParentArgument", SqlDbType.VarChar,200),
  61. new SqlParameter("@DelStatus", SqlDbType.Char,1),
  62. new SqlParameter("@Effective", SqlDbType.Char,1),
  63. new SqlParameter("@Memo", SqlDbType.Text),
  64. new SqlParameter("@CreateUser", SqlDbType.VarChar,50),
  65. new SqlParameter("@CreateDate", SqlDbType.DateTime),
  66. new SqlParameter("@ModifyUser", SqlDbType.VarChar,50),
  67. new SqlParameter("@ModifyDate", SqlDbType.DateTime)};
  68. parametersAdd[0].Value = model.ArgumentClassID;
  69. parametersAdd[1].Value = model.ArgumentID;
  70. parametersAdd[2].Value = model.ArgumentValue;
  71. parametersAdd[3].Value = model.OrderByValue;
  72. parametersAdd[4].Value = model.LevelOfArgument;
  73. parametersAdd[5].Value = model.ParentArgument;
  74. parametersAdd[6].Value = model.DelStatus;
  75. parametersAdd[7].Value = model.Effective;
  76. parametersAdd[8].Value = model.Memo;
  77. parametersAdd[9].Value = model.CreateUser;
  78. parametersAdd[10].Value = model.CreateDate;
  79. parametersAdd[11].Value = model.ModifyUser;
  80. parametersAdd[12].Value = model.ModifyDate;
  81. List<CommandInfo> lstCommandInfo = new List<CommandInfo>(); //定義事物執行的所有SQL
  82. StringBuilder strSql2 = new StringBuilder();
  83. strSql2.Append(" DECLARE @strSQL NVARCHAR(1000) ");
  84. strSql2.Append(" IF CONVERT(INT, @NewOrderByValue) > CONVERT(INT,@OldOrderByValue) ");
  85. strSql2.Append(" BEGIN "); //由小變大,OLD<-1<=NEW
  86. strSql2.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
  87. strSql2.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) - 1 ");
  88. strSql2.Append(" WHERE '+@FeildName+' >= '+@OldOrderByValue + ' AND '+@FeildName+'<='+@NewOrderByValue+' ' ");
  89. strSql2.Append(" IF @Where <>'' ");
  90. strSql2.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
  91. strSql2.Append(" print @strSQL ");
  92. strSql2.Append(" exec sp_executesql @strSQL ");
  93. strSql2.Append(" END ");
  94. strSql2.Append(" ELSE ");
  95. strSql2.Append(" BEGIN "); //由大變小,@NewOrderByValue<=+1<@OldOrderByValue
  96. strSql2.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
  97. strSql2.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) + 1 ");
  98. strSql2.Append(" WHERE '+@FeildName+' <= '+@OldOrderByValue + ' AND '+@FeildName+'>='+@NewOrderByValue+' ' ");
  99. strSql2.Append(" IF @Where <>'' ");
  100. strSql2.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
  101. strSql2.Append(" print @strSQL ");
  102. strSql2.Append(" exec sp_executesql @strSQL ");
  103. strSql2.Append(" END ");
  104. SqlParameter[] parameters = {
  105. new SqlParameter("@OldOrderByValue", SqlDbType.NVarChar,10),
  106. new SqlParameter("@NewOrderByValue", SqlDbType.NVarChar,10),
  107. new SqlParameter("@FeildName", SqlDbType.NVarChar,50),
  108. new SqlParameter("@TableName", SqlDbType.NVarChar,50),
  109. new SqlParameter("@Where", SqlDbType.NVarChar,500)};
  110. parameters[0].Value = model.OldOrderByValue;
  111. parameters[1].Value = model.OrderByValue;
  112. parameters[2].Value = "OrderByValue";
  113. parameters[3].Value = "OTB_SYS_Arguments";
  114. parameters[4].Value = "ArgumentClassID='" + model.ArgumentClassID + "' AND ISNULL(DelStatus,'N') = 'N'";
  115. CommandInfo o_CommandInfo = new CommandInfo(); //定義每一個SQL,代表修改
  116. //o_CommandInfo.CommandText = "OSP_Common_UpdateOrderByValue";
  117. o_CommandInfo.CommandText = strSql2.ToString();
  118. o_CommandInfo.Parameters = parameters;
  119. lstCommandInfo.Add(o_CommandInfo); //添加當前的SQL
  120. o_CommandInfo = new CommandInfo(); //定義每一個SQL,代表新增,雖然參數名稱相同,但是經過new以後就是新的對象
  121. //o_CommandInfo.CommandText = "OSP_OTB_SYS_Arguments_ADD";
  122. o_CommandInfo.CommandText = strSql.ToString();
  123. o_CommandInfo.Parameters = parametersAdd;
  124. lstCommandInfo.Add(o_CommandInfo); //添加當前的SQL
  125. if (DbHelperSQL.ExecuteSqlTran(lstCommandInfo) > 0)
  126. {
  127. return true;
  128. }
  129. else
  130. {
  131. return false;
  132. }
  133. }
  134. /// <summary>
  135. /// 更新一條資料
  136. /// </summary>
  137. public bool Update(OT.Model.OTB_SYS_Arguments model)
  138. {
  139. StringBuilder strSql = new StringBuilder();
  140. strSql.Append(" UPDATE [OTB_SYS_Arguments] SET ");
  141. strSql.Append(" [ArgumentValue] = @ArgumentValue,[OrderByValue] = @OrderByValue,[DelStatus] = @DelStatus,[Effective] = @Effective,[Memo] = @Memo,[ModifyUser] = @ModifyUser,[ModifyDate] = GETDATE() ");
  142. strSql.Append(" WHERE ArgumentClassID=@ArgumentClassID and ArgumentID=@ArgumentID ");
  143. SqlParameter[] parameters = {
  144. new SqlParameter("@ArgumentClassID", SqlDbType.VarChar,10),
  145. new SqlParameter("@ArgumentID", SqlDbType.VarChar,200),
  146. new SqlParameter("@ArgumentValue", SqlDbType.NVarChar,200),
  147. new SqlParameter("@OrderByValue", SqlDbType.Int,4),
  148. new SqlParameter("@LevelOfArgument", SqlDbType.Int,4),
  149. new SqlParameter("@ParentArgument", SqlDbType.VarChar,200),
  150. new SqlParameter("@DelStatus", SqlDbType.Char,1),
  151. new SqlParameter("@Effective", SqlDbType.Char,1),
  152. new SqlParameter("@Memo", SqlDbType.Text),
  153. new SqlParameter("@CreateUser", SqlDbType.VarChar,50),
  154. new SqlParameter("@CreateDate", SqlDbType.DateTime),
  155. new SqlParameter("@ModifyUser", SqlDbType.VarChar,50),
  156. new SqlParameter("@ModifyDate", SqlDbType.DateTime)};
  157. parameters[0].Value = model.ArgumentClassID;
  158. parameters[1].Value = model.ArgumentID;
  159. parameters[2].Value = model.ArgumentValue;
  160. parameters[3].Value = model.OrderByValue;
  161. parameters[4].Value = model.LevelOfArgument;
  162. parameters[5].Value = model.ParentArgument;
  163. parameters[6].Value = model.DelStatus;
  164. parameters[7].Value = model.Effective;
  165. parameters[8].Value = model.Memo;
  166. parameters[9].Value = model.CreateUser;
  167. parameters[10].Value = model.CreateDate;
  168. parameters[11].Value = model.ModifyUser;
  169. parameters[12].Value = model.ModifyDate;
  170. List<CommandInfo> lstCommandInfo = new List<CommandInfo>(); //定義事物執行的所有SQL
  171. StringBuilder strSql2 = new StringBuilder();
  172. strSql2.Append(" DECLARE @strSQL NVARCHAR(1000) ");
  173. strSql2.Append(" IF CONVERT(INT, @NewOrderByValue) > CONVERT(INT,@OldOrderByValue) ");
  174. strSql2.Append(" BEGIN "); //由小變大,OLD<-1<=NEW
  175. strSql2.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
  176. strSql2.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) - 1 ");
  177. strSql2.Append(" WHERE '+@FeildName+' >= '+@OldOrderByValue + ' AND '+@FeildName+'<='+@NewOrderByValue+' ' ");
  178. strSql2.Append(" IF @Where <>'' ");
  179. strSql2.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
  180. strSql2.Append(" print @strSQL ");
  181. strSql2.Append(" exec sp_executesql @strSQL ");
  182. strSql2.Append(" END ");
  183. strSql2.Append(" ELSE ");
  184. strSql2.Append(" BEGIN "); //由大變小,@NewOrderByValue<=+1<@OldOrderByValue
  185. strSql2.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
  186. strSql2.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) + 1 ");
  187. strSql2.Append(" WHERE '+@FeildName+' <= '+@OldOrderByValue + ' AND '+@FeildName+'>='+@NewOrderByValue+' ' ");
  188. strSql2.Append(" IF @Where <>'' ");
  189. strSql2.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
  190. strSql2.Append(" print @strSQL ");
  191. strSql2.Append(" exec sp_executesql @strSQL ");
  192. strSql2.Append(" END ");
  193. SqlParameter[] parametersChangeOrder = {
  194. new SqlParameter("@OldOrderByValue", SqlDbType.NVarChar,10),
  195. new SqlParameter("@NewOrderByValue", SqlDbType.NVarChar,10),
  196. new SqlParameter("@FeildName", SqlDbType.NVarChar,50),
  197. new SqlParameter("@TableName", SqlDbType.NVarChar,50),
  198. new SqlParameter("@Where", SqlDbType.NVarChar,500)};
  199. parametersChangeOrder[0].Value = model.OldOrderByValue;
  200. parametersChangeOrder[1].Value = model.OrderByValue;
  201. parametersChangeOrder[2].Value = "OrderByValue";
  202. parametersChangeOrder[3].Value = "OTB_SYS_Arguments";
  203. parametersChangeOrder[4].Value = "ArgumentClassID='" + model.ArgumentClassID + "' AND ISNULL(DelStatus,'N') = 'N'";
  204. CommandInfo o_CommandInfo = new CommandInfo(); //定義每一個SQL,代表修改
  205. //o_CommandInfo.CommandText = "OSP_Common_UpdateOrderByValue";
  206. o_CommandInfo.CommandText = strSql2.ToString();
  207. o_CommandInfo.Parameters = parametersChangeOrder;
  208. lstCommandInfo.Add(o_CommandInfo); //添加當前的SQL
  209. o_CommandInfo = new CommandInfo(); //定義每一個SQL,代表新增,雖然參數名稱相同,但是經過new以後就是新的對象
  210. //o_CommandInfo.CommandText = "OSP_OTB_SYS_Arguments_Update";
  211. o_CommandInfo.CommandText = strSql.ToString();
  212. o_CommandInfo.Parameters = parameters;
  213. lstCommandInfo.Add(o_CommandInfo); //添加當前的SQL
  214. if (DbHelperSQL.ExecuteSqlTran(lstCommandInfo) > 0)
  215. {
  216. return true;
  217. }
  218. else
  219. {
  220. return false;
  221. }
  222. }
  223. /// <summary>
  224. /// 刪除一條資料
  225. /// </summary>
  226. public bool Delete(OT.Model.OTB_SYS_Arguments model)
  227. {
  228. int rowsAffected = 0;
  229. StringBuilder strSql = new StringBuilder();
  230. strSql.Append(" DECLARE @OrderByValue INT ");
  231. strSql.Append(" SELECT @OrderByValue = OrderByValue ");
  232. strSql.Append(" FROM [OTB_SYS_Arguments] ");
  233. strSql.Append(" WHERE ArgumentID=@ArgumentID ");
  234. strSql.Append(" DELETE [OTB_SYS_Arguments] ");
  235. strSql.Append(" WHERE ArgumentClassID=@ArgumentClassID and ArgumentID=@ArgumentID ");
  236. SqlParameter[] parameters = {
  237. new SqlParameter("@ArgumentClassID", SqlDbType.VarChar,10),
  238. new SqlParameter("@ArgumentID", SqlDbType.VarChar,200) };
  239. parameters[0].Value = model.ArgumentClassID;
  240. parameters[1].Value = model.ArgumentID;
  241. List<CommandInfo> lstCommandInfo = new List<CommandInfo>(); //定義事物執行的所有SQL
  242. StringBuilder strSql2 = new StringBuilder();
  243. strSql2.Append(" DECLARE @strSQL NVARCHAR(1000) ");
  244. strSql2.Append(" IF CONVERT(INT, @NewOrderByValue) > CONVERT(INT,@OldOrderByValue) ");
  245. strSql2.Append(" BEGIN "); //由小變大,OLD<-1<=NEW
  246. strSql2.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
  247. strSql2.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) - 1 ");
  248. strSql2.Append(" WHERE '+@FeildName+' >= '+@OldOrderByValue + ' AND '+@FeildName+'<='+@NewOrderByValue+' ' ");
  249. strSql2.Append(" IF @Where <>'' ");
  250. strSql2.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
  251. strSql2.Append(" print @strSQL ");
  252. strSql2.Append(" exec sp_executesql @strSQL ");
  253. strSql2.Append(" END ");
  254. strSql2.Append(" ELSE ");
  255. strSql2.Append(" BEGIN "); //由大變小,@NewOrderByValue<=+1<@OldOrderByValue
  256. strSql2.Append(" SET @strSQL=N'UPDATE '+@TableName+' ");
  257. strSql2.Append(" SET '+@FeildName+' = ISNULL('+@FeildName+',0) + 1 ");
  258. strSql2.Append(" WHERE '+@FeildName+' <= '+@OldOrderByValue + ' AND '+@FeildName+'>='+@NewOrderByValue+' ' ");
  259. strSql2.Append(" IF @Where <>'' ");
  260. strSql2.Append(" SET @strSQL =@strSQL + ' AND ' + @Where ");
  261. strSql2.Append(" print @strSQL ");
  262. strSql2.Append(" exec sp_executesql @strSQL ");
  263. strSql2.Append(" END ");
  264. SqlParameter[] parametersChangeOrder = {
  265. new SqlParameter("@OldOrderByValue", SqlDbType.NVarChar,10),
  266. new SqlParameter("@NewOrderByValue", SqlDbType.NVarChar,10),
  267. new SqlParameter("@FeildName", SqlDbType.NVarChar,50),
  268. new SqlParameter("@TableName", SqlDbType.NVarChar,50),
  269. new SqlParameter("@Where", SqlDbType.NVarChar,500)};
  270. parametersChangeOrder[0].Value = model.OldOrderByValue;
  271. parametersChangeOrder[1].Value = model.OrderByValue;
  272. parametersChangeOrder[2].Value = "OrderByValue";
  273. parametersChangeOrder[3].Value = "OTB_SYS_Arguments";
  274. parametersChangeOrder[4].Value = "ArgumentClassID='" + model.ArgumentClassID + "' AND ISNULL(DelStatus,'N') = 'N'";
  275. CommandInfo o_CommandInfo = new CommandInfo(); //定義每一個SQL,代表修改
  276. //o_CommandInfo.CommandText = "OSP_Common_UpdateOrderByValue";
  277. o_CommandInfo.CommandText = strSql2.ToString();
  278. o_CommandInfo.Parameters = parametersChangeOrder;
  279. lstCommandInfo.Add(o_CommandInfo); //添加當前的SQL
  280. o_CommandInfo = new CommandInfo(); //定義每一個SQL,代表新增,雖然參數名稱相同,但是經過new以後就是新的對象
  281. //o_CommandInfo.CommandText = "OSP_OTB_SYS_Arguments_Update";
  282. o_CommandInfo.CommandText = strSql.ToString();
  283. o_CommandInfo.Parameters = parameters;
  284. lstCommandInfo.Add(o_CommandInfo); //添加當前的SQL
  285. //DbHelperSQL.RunProcedure("OSP_OTB_SYS_Arguments_Delete", parameters, out rowsAffected);
  286. int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
  287. if (rows > 0)
  288. {
  289. return true;
  290. }
  291. else
  292. {
  293. return false;
  294. }
  295. }
  296. /// <summary>
  297. /// 得到一個對象實體
  298. /// </summary>
  299. public OT.Model.OTB_SYS_Arguments GetModel(string ArgumentClassID, string ArgumentID)
  300. {
  301. StringBuilder strSql = new StringBuilder();
  302. strSql.Append("select top 1 ArgumentClassID,ArgumentID,ArgumentValue,MaxNumber,OrderByValue,DelStatus,Effective,Memo,CreateUser,CreateDate,ModifyUser,ModifyDate from OTB_SYS_Arguments ");
  303. strSql.Append(" where ArgumentClassID=@ArgumentClassID and ArgumentID=@ArgumentID ");
  304. SqlParameter[] parameters = {
  305. new SqlParameter("@ArgumentClassID", SqlDbType.VarChar,10),
  306. new SqlParameter("@ArgumentID", SqlDbType.VarChar,200)
  307. };
  308. parameters[0].Value = ArgumentClassID;
  309. parameters[1].Value = ArgumentID;
  310. OT.Model.OTB_SYS_Arguments model = new OT.Model.OTB_SYS_Arguments();
  311. //DataSet ds = DbHelperSQL.RunProcedure("OSP_OTB_SYS_Arguments_GetModel", parameters, "ds");
  312. DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters);
  313. if (ds.Tables[0].Rows.Count > 0)
  314. {
  315. if (ds.Tables[0].Rows[0]["ArgumentClassID"] != null && ds.Tables[0].Rows[0]["ArgumentClassID"].ToString() != "")
  316. {
  317. model.ArgumentClassID = ds.Tables[0].Rows[0]["ArgumentClassID"].ToString();
  318. }
  319. if (ds.Tables[0].Rows[0]["ArgumentID"] != null && ds.Tables[0].Rows[0]["ArgumentID"].ToString() != "")
  320. {
  321. model.ArgumentID = ds.Tables[0].Rows[0]["ArgumentID"].ToString();
  322. }
  323. if (ds.Tables[0].Rows[0]["ArgumentValue"] != null && ds.Tables[0].Rows[0]["ArgumentValue"].ToString() != "")
  324. {
  325. model.ArgumentValue = ds.Tables[0].Rows[0]["ArgumentValue"].ToString();
  326. }
  327. if (ds.Tables[0].Rows[0]["OrderByValue"] != null && ds.Tables[0].Rows[0]["OrderByValue"].ToString() != "")
  328. {
  329. model.OrderByValue = int.Parse(ds.Tables[0].Rows[0]["OrderByValue"].ToString());
  330. }
  331. //if (ds.Tables[0].Rows[0]["LevelOfArgument"] != null && ds.Tables[0].Rows[0]["LevelOfArgument"].ToString() != "")
  332. //{
  333. // model.LevelOfArgument = int.Parse(ds.Tables[0].Rows[0]["LevelOfArgument"].ToString());
  334. //}
  335. //if (ds.Tables[0].Rows[0]["ParentArgument"] != null && ds.Tables[0].Rows[0]["ParentArgument"].ToString() != "")
  336. //{
  337. // model.ParentArgument = ds.Tables[0].Rows[0]["ParentArgument"].ToString();
  338. //}
  339. if (ds.Tables[0].Rows[0]["DelStatus"] != null && ds.Tables[0].Rows[0]["DelStatus"].ToString() != "")
  340. {
  341. model.DelStatus = ds.Tables[0].Rows[0]["DelStatus"].ToString();
  342. }
  343. if (ds.Tables[0].Rows[0]["Effective"] != null && ds.Tables[0].Rows[0]["Effective"].ToString() != "")
  344. {
  345. model.Effective = ds.Tables[0].Rows[0]["Effective"].ToString();
  346. }
  347. if (ds.Tables[0].Rows[0]["Memo"] != null && ds.Tables[0].Rows[0]["Memo"].ToString() != "")
  348. {
  349. model.Memo = ds.Tables[0].Rows[0]["Memo"].ToString();
  350. }
  351. if (ds.Tables[0].Rows[0]["CreateUser"] != null && ds.Tables[0].Rows[0]["CreateUser"].ToString() != "")
  352. {
  353. model.CreateUser = ds.Tables[0].Rows[0]["CreateUser"].ToString();
  354. }
  355. if (ds.Tables[0].Rows[0]["CreateDate"] != null && ds.Tables[0].Rows[0]["CreateDate"].ToString() != "")
  356. {
  357. model.CreateDate = DateTime.Parse(ds.Tables[0].Rows[0]["CreateDate"].ToString());
  358. }
  359. if (ds.Tables[0].Rows[0]["ModifyUser"] != null && ds.Tables[0].Rows[0]["ModifyUser"].ToString() != "")
  360. {
  361. model.ModifyUser = ds.Tables[0].Rows[0]["ModifyUser"].ToString();
  362. }
  363. if (ds.Tables[0].Rows[0]["ModifyDate"] != null && ds.Tables[0].Rows[0]["ModifyDate"].ToString() != "")
  364. {
  365. model.ModifyDate = DateTime.Parse(ds.Tables[0].Rows[0]["ModifyDate"].ToString());
  366. }
  367. return model;
  368. }
  369. else
  370. {
  371. return null;
  372. }
  373. }
  374. /// <summary>
  375. /// 得到一個對象實體
  376. /// </summary>
  377. public OT.Model.OTB_SYS_Arguments DataRowToModel(DataRow row)
  378. {
  379. OT.Model.OTB_SYS_Arguments model = new OT.Model.OTB_SYS_Arguments();
  380. if (row != null)
  381. {
  382. if (row["ArgumentClassID"] != null)
  383. {
  384. model.ArgumentClassID = row["ArgumentClassID"].ToString();
  385. }
  386. if (row["ArgumentID"] != null)
  387. {
  388. model.ArgumentID = row["ArgumentID"].ToString();
  389. }
  390. if (row["ArgumentValue"] != null)
  391. {
  392. model.ArgumentValue = row["ArgumentValue"].ToString();
  393. }
  394. if (row["MaxNumber"] != null && row["MaxNumber"].ToString() != "")
  395. {
  396. model.MaxNumber = int.Parse(row["MaxNumber"].ToString());
  397. }
  398. if (row["OrderByValue"] != null && row["OrderByValue"].ToString() != "")
  399. {
  400. model.OrderByValue = int.Parse(row["OrderByValue"].ToString());
  401. }
  402. if (row["DelStatus"] != null)
  403. {
  404. model.DelStatus = row["DelStatus"].ToString();
  405. }
  406. if (row["Effective"] != null)
  407. {
  408. model.Effective = row["Effective"].ToString();
  409. }
  410. if (row["Memo"] != null)
  411. {
  412. model.Memo = row["Memo"].ToString();
  413. }
  414. if (row["CreateUser"] != null)
  415. {
  416. model.CreateUser = row["CreateUser"].ToString();
  417. }
  418. if (row["CreateDate"] != null && row["CreateDate"].ToString() != "")
  419. {
  420. model.CreateDate = DateTime.Parse(row["CreateDate"].ToString());
  421. }
  422. if (row["ModifyUser"] != null)
  423. {
  424. model.ModifyUser = row["ModifyUser"].ToString();
  425. }
  426. if (row["ModifyDate"] != null && row["ModifyDate"].ToString() != "")
  427. {
  428. model.ModifyDate = DateTime.Parse(row["ModifyDate"].ToString());
  429. }
  430. }
  431. return model;
  432. }
  433. /// <summary>
  434. /// 獲得資料列表
  435. /// </summary>
  436. public DataSet GetList(int StartRecordIndex, int EndRecordIndex, string ArgumentClassID, string ArgumentID, string ArgumentValue, string Effective, string SortExpression)
  437. {
  438. StringBuilder strSql = new StringBuilder();
  439. strSql.Append(" SELECT ");
  440. strSql.Append(" RowId,ArgumentClassID,ArgumentClassName,ArgumentID,ArgumentValue,Effective,OrderByValue ");
  441. strSql.Append(" ,(SELECT COUNT(0) FROM OTB_SYS_Arguments WHERE ArgumentClassID=AA.ArgumentClassID) AS ClassCount ");
  442. strSql.Append(" FROM ");
  443. strSql.Append(" ( ");
  444. strSql.Append(" SELECT ");
  445. strSql.Append(" CASE @SortExpression WHEN N'ArgumentClassName' THEN ");
  446. strSql.Append(" (ROW_NUMBER() OVER(Order BY ptm.ArgumentClassName)) ");
  447. strSql.Append(" WHEN N'ArgumentClassName DESC' THEN ");
  448. strSql.Append(" (ROW_NUMBER() OVER(Order BY ptm.ArgumentClassName DESC)) ");
  449. strSql.Append(" WHEN N'ArgumentID' THEN ");
  450. strSql.Append(" (ROW_NUMBER() OVER(Order BY ArgumentID)) ");
  451. strSql.Append(" WHEN N'ArgumentID DESC' THEN ");
  452. strSql.Append(" (ROW_NUMBER() OVER(Order BY ArgumentID DESC)) ");
  453. strSql.Append(" WHEN N'ArgumentValue' THEN ");
  454. strSql.Append(" (ROW_NUMBER() OVER(Order BY ArgumentValue)) ");
  455. strSql.Append(" WHEN N'ArgumentValue DESC' THEN ");
  456. strSql.Append(" (ROW_NUMBER() OVER(Order BY ArgumentValue DESC)) ");
  457. strSql.Append(" WHEN N'Effective' THEN ");
  458. strSql.Append(" (ROW_NUMBER() OVER(Order BY tm.Effective)) ");
  459. strSql.Append(" WHEN N'Effective DESC' THEN ");
  460. strSql.Append(" (ROW_NUMBER() OVER(Order BY tm.Effective DESC)) ");
  461. strSql.Append(" WHEN N'OrderByValue' THEN ");
  462. strSql.Append(" (ROW_NUMBER() OVER(Order BY tm.OrderByValue)) ");
  463. strSql.Append(" WHEN N'OrderByValue DESC' THEN ");
  464. strSql.Append(" (ROW_NUMBER() OVER(Order BY tm.OrderByValue DESC)) ");
  465. strSql.Append(" ELSE ");
  466. strSql.Append(" (ROW_NUMBER() OVER(Order BY tm.ArgumentClassID,tm.OrderByValue)) ");
  467. strSql.Append(" END AS RowId,ptm.ArgumentClassID,ptm.ArgumentClassName,ArgumentID ");
  468. strSql.Append(" ,ArgumentValue,tm.Effective,tm.OrderByValue ");
  469. strSql.Append(" FROM OTB_SYS_Argumentclass as ptm ");
  470. strSql.Append(" LEFT JOIN OTB_SYS_Arguments as tm on ptm.ArgumentClassID = tm.ArgumentClassID ");
  471. strSql.Append(" WHERE (ptm.ArgumentClassID = @ArgumentClassID OR @ArgumentClassID IS NULL OR @ArgumentClassID='') ");
  472. strSql.Append(" AND (ArgumentID LIKE @ArgumentID OR @ArgumentID IS NULL OR @ArgumentID='' OR @ArgumentID = '%%') ");
  473. strSql.Append(" AND (ArgumentValue LIKE @ArgumentValue OR @ArgumentValue IS NULL OR @ArgumentValue='' OR @ArgumentValue = '%%') ");
  474. strSql.Append(" AND (tm.Effective = @Effective OR @Effective IS NULL OR @Effective='') ");
  475. strSql.Append(" AND tm.[DelStatus] = 'N' ");
  476. strSql.Append(" AND ptm.[DelStatus] = 'N' ");
  477. strSql.Append(" ) AS AA ");
  478. strSql.Append(" WHERE AA.RowId>=@StartRecordIndex AND AA.RowId<=@EndRecordIndex ");
  479. strSql.Append(" ORDER BY RowId ");
  480. SqlParameter[] parameters = {
  481. new SqlParameter("@StartRecordIndex", SqlDbType.Int)
  482. ,new SqlParameter("@EndRecordIndex", SqlDbType.Int)
  483. ,new SqlParameter("@ArgumentClassID", SqlDbType.VarChar,10)
  484. ,new SqlParameter("@ArgumentID", SqlDbType.NVarChar,20)
  485. ,new SqlParameter("@ArgumentValue", SqlDbType.NVarChar,200)
  486. ,new SqlParameter("@Effective", SqlDbType.Char,1)
  487. ,new SqlParameter("@SortExpression", SqlDbType.NVarChar,500)
  488. };
  489. parameters[0].Value = StartRecordIndex;
  490. parameters[1].Value = EndRecordIndex;
  491. parameters[2].Value = ArgumentClassID;
  492. parameters[3].Value = "%" + ArgumentID + "%";
  493. parameters[4].Value = "%" + ArgumentValue + "%";
  494. parameters[5].Value = Effective;
  495. parameters[6].Value = SortExpression;
  496. //return DbHelperSQL.RunProcedure("OSP_OTB_SYS_Arguments_GetListByIdEff", parameters, "ds");
  497. return DbHelperSQL.Query(strSql.ToString(), parameters);
  498. }
  499. /// <summary>
  500. /// 獲得資料總筆數
  501. /// </summary>
  502. public int GetListCount(string ArgumentClassID, string ArgumentID, string ArgumentValue, string Effective)
  503. {
  504. StringBuilder strSql = new StringBuilder();
  505. strSql.Append(" SELECT ");
  506. strSql.Append(" COUNT(0) ");
  507. strSql.Append(" FROM ");
  508. strSql.Append(" OTB_SYS_Argumentclass as ptm ");
  509. strSql.Append(" inner join OTB_SYS_Arguments as tm on ptm.ArgumentClassID = tm.ArgumentClassID ");
  510. strSql.Append(" WHERE (ptm.ArgumentClassID = @ArgumentClassID OR @ArgumentClassID IS NULL OR @ArgumentClassID='') ");
  511. strSql.Append(" AND (tm.ArgumentID LIKE @ArgumentID OR @ArgumentID IS NULL OR @ArgumentID='' OR @ArgumentID = '%%') ");
  512. strSql.Append(" AND (tm.ArgumentValue LIKE @ArgumentValue OR @ArgumentValue IS NULL OR @ArgumentValue='' OR @ArgumentValue = '%%') ");
  513. strSql.Append(" AND (tm.Effective = @Effective OR @Effective IS NULL OR @Effective='') ");
  514. strSql.Append(" AND tm.[DelStatus] = 'N' ");
  515. strSql.Append(" AND ptm.[DelStatus] = 'N' ");
  516. SqlParameter[] parameters = {
  517. new SqlParameter("@ArgumentClassID", SqlDbType.VarChar,10)
  518. ,new SqlParameter("@ArgumentID", SqlDbType.NVarChar,20)
  519. ,new SqlParameter("@ArgumentValue", SqlDbType.NVarChar,200)
  520. ,new SqlParameter("@Effective", SqlDbType.Char,1)
  521. };
  522. parameters[0].Value = ArgumentClassID;
  523. parameters[1].Value = "%" + ArgumentID + "%";
  524. parameters[2].Value = "%" + ArgumentValue + "%";
  525. parameters[3].Value = Effective;
  526. //return (int)DbHelperSQL.GetSingle("OSP_OTB_SYS_Arguments_GetCount", parameters);
  527. return (int)DbHelperSQL.GetSingle(strSql.ToString(), parameters);
  528. }
  529. #endregion Method
  530. }
  531. }