systemUserDataAccess.cs 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596
  1. using Oracle.ManagedDataAccess.Client;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.Linq;
  6. using System.Web;
  7. namespace ResfullApi.Models
  8. {
  9. public class systemUserDataAccess
  10. {
  11. public systemUserDataAccess()
  12. {
  13. }
  14. public static DataSet SYS_USER_WEB_CMS_GET_LIST(string v_users, string v_id, string v_username, string v_role, string v_isLock, string v_order, string v_rowsOnPage, string v_seqPage)
  15. {
  16. DataSet ds = new DataSet();
  17. OracleConnection dbConnection = DataAccess.getPoolingConnection();
  18. try
  19. {
  20. dbConnection.Open();
  21. // Parse pagination parameters
  22. int rowsOnPage = int.TryParse(v_rowsOnPage, out int r) ? r : 10;
  23. int seqPage = int.TryParse(v_seqPage, out int s) ? s : 1;
  24. // Build base query for counting total records
  25. string countSql = "SELECT COUNT(*) FROM USER_WEB_CMS WHERE 1=1";
  26. string dataSql = @"SELECT ID, USERNAME, PASSWORD, ROLE, COUNTRY_CODE, IS_LOCK, TOTAL_FALSE, TIME_LOCK, NOTE
  27. FROM USER_WEB_CMS WHERE 1=1";
  28. // Add filters
  29. if (v_id != null && v_id != "-1")
  30. {
  31. countSql += " AND ID = :v_id";
  32. dataSql += " AND ID = :v_id";
  33. }
  34. if (v_username != null && v_username != "-1")
  35. {
  36. countSql += " AND UPPER(USERNAME) LIKE UPPER(:v_username)";
  37. dataSql += " AND UPPER(USERNAME) LIKE UPPER(:v_username)";
  38. }
  39. if (v_role != null && v_role != "-1")
  40. {
  41. countSql += " AND UPPER(ROLE) LIKE UPPER(:v_role)";
  42. dataSql += " AND UPPER(ROLE) LIKE UPPER(:v_role)";
  43. }
  44. if (v_isLock != null && v_isLock != "-1")
  45. {
  46. countSql += " AND IS_LOCK = :v_isLock";
  47. dataSql += " AND IS_LOCK = :v_isLock";
  48. }
  49. // Add ordering
  50. dataSql += " ORDER BY ID " + (v_order == "desc" ? "DESC" : "ASC");
  51. // Calculate pagination
  52. OracleCommand countCmd = new OracleCommand(countSql, dbConnection);
  53. countCmd.CommandType = CommandType.Text;
  54. if (v_id != null && v_id != "-1")
  55. {
  56. countCmd.Parameters.Add(":v_id", OracleDbType.NVarchar2).Value = v_id;
  57. }
  58. if (v_username != null && v_username != "-1")
  59. {
  60. countCmd.Parameters.Add(":v_username", OracleDbType.NVarchar2).Value = "%" + v_username + "%";
  61. }
  62. if (v_role != null && v_role != "-1")
  63. {
  64. countCmd.Parameters.Add(":v_role", OracleDbType.NVarchar2).Value = "%" + v_role + "%";
  65. }
  66. if (v_isLock != null && v_isLock != "-1")
  67. {
  68. countCmd.Parameters.Add(":v_isLock", OracleDbType.Int32).Value = int.Parse(v_isLock);
  69. }
  70. int totalRows = Convert.ToInt32(countCmd.ExecuteScalar());
  71. int totalPage = (int)Math.Ceiling((double)totalRows / rowsOnPage);
  72. // Get paginated data
  73. int minRow = (seqPage - 1) * rowsOnPage;
  74. dataSql = string.Format(@"SELECT * FROM (
  75. SELECT A.*, ROWNUM rnum FROM ({0}) A WHERE ROWNUM <= {1}
  76. ) WHERE rnum > {2}", dataSql, minRow + rowsOnPage, minRow);
  77. OracleCommand dataCmd = new OracleCommand(dataSql, dbConnection);
  78. dataCmd.CommandType = CommandType.Text;
  79. if (v_id != null && v_id != "-1")
  80. {
  81. dataCmd.Parameters.Add(":v_id", OracleDbType.NVarchar2).Value = v_id;
  82. }
  83. if (v_username != null && v_username != "-1")
  84. {
  85. dataCmd.Parameters.Add(":v_username", OracleDbType.NVarchar2).Value = "%" + v_username + "%";
  86. }
  87. if (v_role != null && v_role != "-1")
  88. {
  89. dataCmd.Parameters.Add(":v_role", OracleDbType.NVarchar2).Value = "%" + v_role + "%";
  90. }
  91. if (v_isLock != null && v_isLock != "-1")
  92. {
  93. dataCmd.Parameters.Add(":v_isLock", OracleDbType.Int32).Value = int.Parse(v_isLock);
  94. }
  95. OracleDataAdapter dataAdapter = new OracleDataAdapter(dataCmd);
  96. dataAdapter.Fill(ds);
  97. // Add pagination metadata to each row
  98. if (ds.Tables.Count > 0)
  99. {
  100. if (ds.Tables[0].Columns.Contains("ROW_ON_PAGE"))
  101. {
  102. ds.Tables[0].Columns.Remove("ROW_ON_PAGE");
  103. }
  104. if (ds.Tables[0].Columns.Contains("SEQ_PAGE"))
  105. {
  106. ds.Tables[0].Columns.Remove("SEQ_PAGE");
  107. }
  108. if (ds.Tables[0].Columns.Contains("TOTAL_PAGE"))
  109. {
  110. ds.Tables[0].Columns.Remove("TOTAL_PAGE");
  111. }
  112. ds.Tables[0].Columns.Add("ROW_ON_PAGE", typeof(string));
  113. ds.Tables[0].Columns.Add("SEQ_PAGE", typeof(string));
  114. ds.Tables[0].Columns.Add("TOTAL_PAGE", typeof(string));
  115. ds.Tables[0].Columns.Add("STATUS", typeof(string));
  116. ds.Tables[0].Columns.Add("MSG", typeof(string));
  117. foreach (DataRow row in ds.Tables[0].Rows)
  118. {
  119. row["ROW_ON_PAGE"] = rowsOnPage.ToString();
  120. row["SEQ_PAGE"] = seqPage.ToString();
  121. row["TOTAL_PAGE"] = totalPage.ToString();
  122. row["STATUS"] = "0";
  123. row["MSG"] = "Success";
  124. }
  125. }
  126. }
  127. catch (OracleException ex)
  128. {
  129. throw ex;
  130. }
  131. catch (Exception ex)
  132. {
  133. throw ex;
  134. }
  135. finally
  136. {
  137. dbConnection.Close();
  138. }
  139. return ds;
  140. }
  141. public static DataSet SYS_USER_WEB_CMS_INSERT(string V_USERNAME, string V_PASSWORD, string V_ROLE, string V_COUNTRY_CODE, string V_NOTE, string V_USERS)
  142. {
  143. DataSet ds = new DataSet();
  144. DataTable tb = new DataTable();
  145. tb.Columns.Add("status", typeof(string));
  146. tb.Columns.Add("msg", typeof(string));
  147. OracleConnection dbConnection = DataAccess.getPoolingConnection();
  148. try
  149. {
  150. dbConnection.Open();
  151. string sql = @"INSERT INTO USER_WEB_CMS(ID, USERNAME, PASSWORD, ROLE, COUNTRY_CODE, NOTE)
  152. VALUES(USER_WEB_CMS_SEQ.NEXTVAL, :username, :password, :role, :countryCode, :note)";
  153. using (OracleCommand cmd = new OracleCommand(sql, dbConnection))
  154. {
  155. cmd.CommandType = CommandType.Text;
  156. cmd.Parameters.Add(":username", OracleDbType.NVarchar2).Value = V_USERNAME ?? "";
  157. cmd.Parameters.Add(":password", OracleDbType.NVarchar2).Value = V_PASSWORD ?? "";
  158. cmd.Parameters.Add(":role", OracleDbType.NVarchar2).Value = V_ROLE ?? "";
  159. cmd.Parameters.Add(":countryCode", OracleDbType.NVarchar2).Value = V_COUNTRY_CODE ?? "";
  160. cmd.Parameters.Add(":note", OracleDbType.NVarchar2).Value = V_NOTE ?? "";
  161. int affected = cmd.ExecuteNonQuery();
  162. // get generated id in this session
  163. string newId = "";
  164. try
  165. {
  166. using (OracleCommand idCmd = new OracleCommand("SELECT USER_WEB_CMS_SEQ.CURRVAL FROM DUAL", dbConnection))
  167. {
  168. object val = idCmd.ExecuteScalar();
  169. newId = val == null ? "" : Convert.ToString(val);
  170. }
  171. }
  172. catch { }
  173. var row = tb.NewRow();
  174. row["status"] = affected > 0 ? "0" : "-1";
  175. row["msg"] = affected > 0 ? ("Success" + (newId != "" ? ("|" + newId) : "")) : "Insert failed";
  176. tb.Rows.Add(row);
  177. }
  178. }
  179. catch (Exception ex)
  180. {
  181. var row = tb.NewRow();
  182. row["status"] = "-1";
  183. row["msg"] = ex.Message;
  184. tb.Rows.Add(row);
  185. }
  186. finally
  187. {
  188. dbConnection.Close();
  189. }
  190. ds.Tables.Add(tb);
  191. return ds;
  192. }
  193. public static DataSet SYS_USER_WEB_CMS_UPDATE(string V_ID, string V_USERNAME, string V_PASSWORD, string V_ROLE, string V_COUNTRY_CODE, string V_IS_LOCK, string V_TIME_LOCK, string V_TOTAL_FALSE, string V_NOTE, string V_USERS)
  194. {
  195. DataSet ds = new DataSet();
  196. DataTable tb = new DataTable();
  197. tb.Columns.Add("status", typeof(string));
  198. tb.Columns.Add("msg", typeof(string));
  199. OracleConnection dbConnection = DataAccess.getPoolingConnection();
  200. try
  201. {
  202. dbConnection.Open();
  203. // Build dynamic update SQL based on provided fields
  204. List<string> updates = new List<string>();
  205. if (!string.IsNullOrEmpty(V_USERNAME) && V_USERNAME != "-1")
  206. {
  207. updates.Add("USERNAME = :username");
  208. }
  209. if (!string.IsNullOrEmpty(V_PASSWORD) && V_PASSWORD != "-1")
  210. {
  211. updates.Add("PASSWORD = :password");
  212. }
  213. if (!string.IsNullOrEmpty(V_ROLE) && V_ROLE != "-1")
  214. {
  215. updates.Add("ROLE = :role");
  216. }
  217. if (!string.IsNullOrEmpty(V_COUNTRY_CODE) && V_COUNTRY_CODE != "-1")
  218. {
  219. updates.Add("COUNTRY_CODE = :countryCode");
  220. }
  221. if (!string.IsNullOrEmpty(V_NOTE) && V_NOTE != "-1")
  222. {
  223. updates.Add("NOTE = :note");
  224. }
  225. if (!string.IsNullOrEmpty(V_IS_LOCK) && V_IS_LOCK != "-1")
  226. {
  227. updates.Add("IS_LOCK = :isLock");
  228. }
  229. if (!string.IsNullOrEmpty(V_TIME_LOCK) && V_TIME_LOCK != "-1")
  230. {
  231. updates.Add("TIME_LOCK = :timeLock");
  232. }
  233. if (!string.IsNullOrEmpty(V_TOTAL_FALSE) && V_TOTAL_FALSE != "-1")
  234. {
  235. updates.Add("TOTAL_FALSE = :totalFalse");
  236. }
  237. if (updates.Count == 0)
  238. {
  239. var row = tb.NewRow();
  240. row["status"] = "-1";
  241. row["msg"] = "No fields to update";
  242. tb.Rows.Add(row);
  243. ds.Tables.Add(tb);
  244. return ds;
  245. }
  246. string sql = @"UPDATE USER_WEB_CMS SET " + string.Join(", ", updates) + " WHERE ID = :id";
  247. using (OracleCommand cmd = new OracleCommand(sql, dbConnection))
  248. {
  249. cmd.CommandType = CommandType.Text;
  250. if (!string.IsNullOrEmpty(V_USERNAME) && V_USERNAME != "-1")
  251. {
  252. cmd.Parameters.Add(":username", OracleDbType.NVarchar2).Value = V_USERNAME;
  253. }
  254. if (!string.IsNullOrEmpty(V_PASSWORD) && V_PASSWORD != "-1")
  255. {
  256. cmd.Parameters.Add(":password", OracleDbType.NVarchar2).Value = V_PASSWORD;
  257. }
  258. if (!string.IsNullOrEmpty(V_ROLE) && V_ROLE != "-1")
  259. {
  260. cmd.Parameters.Add(":role", OracleDbType.NVarchar2).Value = V_ROLE;
  261. }
  262. if (!string.IsNullOrEmpty(V_COUNTRY_CODE) && V_COUNTRY_CODE != "-1")
  263. {
  264. cmd.Parameters.Add(":countryCode", OracleDbType.NVarchar2).Value = V_COUNTRY_CODE;
  265. }
  266. if (!string.IsNullOrEmpty(V_NOTE) && V_NOTE != "-1")
  267. {
  268. cmd.Parameters.Add(":note", OracleDbType.NVarchar2).Value = V_NOTE;
  269. }
  270. if (!string.IsNullOrEmpty(V_IS_LOCK) && V_IS_LOCK != "-1")
  271. {
  272. cmd.Parameters.Add(":isLock", OracleDbType.Int32).Value = int.Parse(V_IS_LOCK);
  273. }
  274. if (!string.IsNullOrEmpty(V_TIME_LOCK) && V_TIME_LOCK != "-1")
  275. {
  276. cmd.Parameters.Add(":timeLock", OracleDbType.Date).Value = DateTime.Parse(V_TIME_LOCK);
  277. }
  278. if (!string.IsNullOrEmpty(V_TOTAL_FALSE) && V_TOTAL_FALSE != "-1")
  279. {
  280. cmd.Parameters.Add(":totalFalse", OracleDbType.Int32).Value = int.Parse(V_TOTAL_FALSE);
  281. }
  282. cmd.Parameters.Add(":id", OracleDbType.NVarchar2).Value = V_ID ?? "";
  283. int affected = cmd.ExecuteNonQuery();
  284. var row = tb.NewRow();
  285. row["status"] = affected > 0 ? "0" : "-1";
  286. row["msg"] = affected > 0 ? "Success" : "Update failed";
  287. tb.Rows.Add(row);
  288. }
  289. }
  290. catch (Exception ex)
  291. {
  292. var row = tb.NewRow();
  293. row["status"] = "-1";
  294. row["msg"] = ex.Message;
  295. tb.Rows.Add(row);
  296. }
  297. finally
  298. {
  299. dbConnection.Close();
  300. }
  301. ds.Tables.Add(tb);
  302. return ds;
  303. }
  304. public static DataSet SYS_FUNCTION_WEB_CMS_GET_LIST(string v_users, string v_id, string v_role, string v_name, string v_link, string v_order, string v_rowsOnPage, string v_seqPage)
  305. {
  306. DataSet ds = new DataSet();
  307. OracleConnection dbConnection = DataAccess.getPoolingConnection();
  308. try
  309. {
  310. dbConnection.Open();
  311. // Parse pagination parameters
  312. int rowsOnPage = int.TryParse(v_rowsOnPage, out int r) ? r : 10;
  313. int seqPage = int.TryParse(v_seqPage, out int s) ? s : 1;
  314. // Build base query for counting total records
  315. string countSql = "SELECT COUNT(*) FROM USER_WEB_CMS_FUNCTION WHERE 1=1";
  316. string dataSql = @"SELECT ID, ROLE, NAME, LINK, NOTE
  317. FROM USER_WEB_CMS_FUNCTION WHERE 1=1";
  318. // Add filters
  319. if (v_id != null && v_id != "-1")
  320. {
  321. countSql += " AND ID = :v_id";
  322. dataSql += " AND ID = :v_id";
  323. }
  324. if (v_role != null && v_role != "-1")
  325. {
  326. countSql += " AND UPPER(ROLE) LIKE UPPER(:v_role)";
  327. dataSql += " AND UPPER(ROLE) LIKE UPPER(:v_role)";
  328. }
  329. if (v_name != null && v_name != "-1")
  330. {
  331. countSql += " AND UPPER(NAME) LIKE UPPER(:v_name)";
  332. dataSql += " AND UPPER(NAME) LIKE UPPER(:v_name)";
  333. }
  334. if (v_link != null && v_link != "-1")
  335. {
  336. countSql += " AND UPPER(LINK) LIKE UPPER(:v_link)";
  337. dataSql += " AND UPPER(LINK) LIKE UPPER(:v_link)";
  338. }
  339. // Add ordering
  340. dataSql += " ORDER BY ID " + (v_order == "desc" ? "DESC" : "ASC");
  341. // Calculate pagination
  342. OracleCommand countCmd = new OracleCommand(countSql, dbConnection);
  343. countCmd.CommandType = CommandType.Text;
  344. if (v_id != null && v_id != "-1")
  345. {
  346. countCmd.Parameters.Add(":v_id", OracleDbType.NVarchar2).Value = v_id;
  347. }
  348. if (v_role != null && v_role != "-1")
  349. {
  350. countCmd.Parameters.Add(":v_role", OracleDbType.NVarchar2).Value = "%" + v_role + "%";
  351. }
  352. if (v_name != null && v_name != "-1")
  353. {
  354. countCmd.Parameters.Add(":v_name", OracleDbType.NVarchar2).Value = "%" + v_name + "%";
  355. }
  356. if (v_link != null && v_link != "-1")
  357. {
  358. countCmd.Parameters.Add(":v_link", OracleDbType.NVarchar2).Value = "%" + v_link + "%";
  359. }
  360. int totalRows = Convert.ToInt32(countCmd.ExecuteScalar());
  361. int totalPage = (int)Math.Ceiling((double)totalRows / rowsOnPage);
  362. // Get paginated data
  363. int minRow = (seqPage - 1) * rowsOnPage;
  364. dataSql = string.Format(@"SELECT * FROM (
  365. SELECT A.*, ROWNUM rnum FROM ({0}) A WHERE ROWNUM <= {1}
  366. ) WHERE rnum > {2}", dataSql, minRow + rowsOnPage, minRow);
  367. OracleCommand dataCmd = new OracleCommand(dataSql, dbConnection);
  368. dataCmd.CommandType = CommandType.Text;
  369. if (v_id != null && v_id != "-1")
  370. {
  371. dataCmd.Parameters.Add(":v_id", OracleDbType.NVarchar2).Value = v_id;
  372. }
  373. if (v_role != null && v_role != "-1")
  374. {
  375. dataCmd.Parameters.Add(":v_role", OracleDbType.NVarchar2).Value = "%" + v_role + "%";
  376. }
  377. if (v_name != null && v_name != "-1")
  378. {
  379. dataCmd.Parameters.Add(":v_name", OracleDbType.NVarchar2).Value = "%" + v_name + "%";
  380. }
  381. if (v_link != null && v_link != "-1")
  382. {
  383. dataCmd.Parameters.Add(":v_link", OracleDbType.NVarchar2).Value = "%" + v_link + "%";
  384. }
  385. OracleDataAdapter dataAdapter = new OracleDataAdapter(dataCmd);
  386. dataAdapter.Fill(ds);
  387. // Add pagination metadata to each row
  388. if (ds.Tables.Count > 0)
  389. {
  390. if (ds.Tables[0].Columns.Contains("ROW_ON_PAGE"))
  391. {
  392. ds.Tables[0].Columns.Remove("ROW_ON_PAGE");
  393. }
  394. if (ds.Tables[0].Columns.Contains("SEQ_PAGE"))
  395. {
  396. ds.Tables[0].Columns.Remove("SEQ_PAGE");
  397. }
  398. if (ds.Tables[0].Columns.Contains("TOTAL_PAGE"))
  399. {
  400. ds.Tables[0].Columns.Remove("TOTAL_PAGE");
  401. }
  402. ds.Tables[0].Columns.Add("ROW_ON_PAGE", typeof(string));
  403. ds.Tables[0].Columns.Add("SEQ_PAGE", typeof(string));
  404. ds.Tables[0].Columns.Add("TOTAL_PAGE", typeof(string));
  405. ds.Tables[0].Columns.Add("STATUS", typeof(string));
  406. ds.Tables[0].Columns.Add("MSG", typeof(string));
  407. foreach (DataRow row in ds.Tables[0].Rows)
  408. {
  409. row["ROW_ON_PAGE"] = rowsOnPage.ToString();
  410. row["SEQ_PAGE"] = seqPage.ToString();
  411. row["TOTAL_PAGE"] = totalPage.ToString();
  412. row["STATUS"] = "0";
  413. row["MSG"] = "Success";
  414. }
  415. }
  416. }
  417. catch (OracleException ex)
  418. {
  419. throw ex;
  420. }
  421. catch (Exception ex)
  422. {
  423. throw ex;
  424. }
  425. finally
  426. {
  427. dbConnection.Close();
  428. }
  429. return ds;
  430. }
  431. public static DataSet SYS_FUNCTION_WEB_CMS_INSERT(string V_ROLE, string V_NAME, string V_LINK, string V_NOTE, string V_USERS)
  432. {
  433. DataSet ds = new DataSet();
  434. DataTable tb = new DataTable();
  435. tb.Columns.Add("status", typeof(string));
  436. tb.Columns.Add("msg", typeof(string));
  437. OracleConnection dbConnection = DataAccess.getPoolingConnection();
  438. try
  439. {
  440. dbConnection.Open();
  441. string sql = @"INSERT INTO USER_WEB_CMS_FUNCTION(ID, ROLE, NAME, LINK, NOTE)
  442. VALUES(USER_WEB_CMS_FUNCTION_SEQ.NEXTVAL, :role, :name, :link, :note)";
  443. using (OracleCommand cmd = new OracleCommand(sql, dbConnection))
  444. {
  445. cmd.CommandType = CommandType.Text;
  446. cmd.Parameters.Add(":role", OracleDbType.NVarchar2).Value = V_ROLE ?? "";
  447. cmd.Parameters.Add(":name", OracleDbType.NVarchar2).Value = V_NAME ?? "";
  448. cmd.Parameters.Add(":link", OracleDbType.NVarchar2).Value = V_LINK ?? "";
  449. cmd.Parameters.Add(":note", OracleDbType.NVarchar2).Value = V_NOTE ?? "";
  450. int affected = cmd.ExecuteNonQuery();
  451. // get generated id in this session
  452. string newId = "";
  453. try
  454. {
  455. using (OracleCommand idCmd = new OracleCommand("SELECT USER_WEB_CMS_FUNCTION_SEQ.CURRVAL FROM DUAL", dbConnection))
  456. {
  457. object val = idCmd.ExecuteScalar();
  458. newId = val == null ? "" : Convert.ToString(val);
  459. }
  460. }
  461. catch { }
  462. var row = tb.NewRow();
  463. row["status"] = affected > 0 ? "0" : "-1";
  464. row["msg"] = affected > 0 ? ("Success" + (newId != "" ? ("|" + newId) : "")) : "Insert failed";
  465. tb.Rows.Add(row);
  466. }
  467. }
  468. catch (Exception ex)
  469. {
  470. var row = tb.NewRow();
  471. row["status"] = "-1";
  472. row["msg"] = ex.Message;
  473. tb.Rows.Add(row);
  474. }
  475. finally
  476. {
  477. dbConnection.Close();
  478. }
  479. ds.Tables.Add(tb);
  480. return ds;
  481. }
  482. public static DataSet SYS_FUNCTION_WEB_CMS_UPDATE(string V_ID, string V_ROLE, string V_NAME, string V_LINK, string V_NOTE, string V_USERS)
  483. {
  484. DataSet ds = new DataSet();
  485. DataTable tb = new DataTable();
  486. tb.Columns.Add("status", typeof(string));
  487. tb.Columns.Add("msg", typeof(string));
  488. OracleConnection dbConnection = DataAccess.getPoolingConnection();
  489. try
  490. {
  491. dbConnection.Open();
  492. string sql = @"UPDATE USER_WEB_CMS_FUNCTION
  493. SET ROLE = :role,
  494. NAME = :name,
  495. LINK = :link,
  496. NOTE = :note
  497. WHERE ID = :id";
  498. using (OracleCommand cmd = new OracleCommand(sql, dbConnection))
  499. {
  500. cmd.CommandType = CommandType.Text;
  501. cmd.Parameters.Add(":role", OracleDbType.NVarchar2).Value = V_ROLE ?? "";
  502. cmd.Parameters.Add(":name", OracleDbType.NVarchar2).Value = V_NAME ?? "";
  503. cmd.Parameters.Add(":link", OracleDbType.NVarchar2).Value = V_LINK ?? "";
  504. cmd.Parameters.Add(":note", OracleDbType.NVarchar2).Value = V_NOTE ?? "";
  505. cmd.Parameters.Add(":id", OracleDbType.NVarchar2).Value = V_ID ?? "";
  506. int affected = cmd.ExecuteNonQuery();
  507. var row = tb.NewRow();
  508. row["status"] = affected > 0 ? "0" : "-1";
  509. row["msg"] = affected > 0 ? "Success" : "Update failed";
  510. tb.Rows.Add(row);
  511. }
  512. }
  513. catch (Exception ex)
  514. {
  515. var row = tb.NewRow();
  516. row["status"] = "-1";
  517. row["msg"] = ex.Message;
  518. tb.Rows.Add(row);
  519. }
  520. finally
  521. {
  522. dbConnection.Close();
  523. }
  524. ds.Tables.Add(tb);
  525. return ds;
  526. }
  527. }
  528. }