DBcon.cs 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Text;
  5. using System.Data.OleDb;
  6. namespace BooksManageSystem
  7. {
  8. internal class DBcon
  9. {
  10. #region 书籍列表
  11. private DataTable _dal_getBookList()
  12. {
  13. using (OleDbCommand comm = new OleDbCommand(@"select * from books"))
  14. {
  15. return DBHelper.ExecuteDataTable(comm);
  16. }
  17. }
  18. private DataTable _dal_getBookListByName(string name)
  19. {
  20. using (OleDbCommand comm = new OleDbCommand(@"select * from books where bookname like '%" + name + "%'"))
  21. {
  22. return DBHelper.ExecuteDataTable(comm);
  23. }
  24. }
  25. private DataTable _dal_getOneBookByID(int id)
  26. {
  27. using (OleDbCommand comm = new OleDbCommand(@"select * from books where ID =" + id ))
  28. {
  29. return DBHelper.ExecuteDataTable(comm);
  30. }
  31. }
  32. private List<Book> _ToModuleBookList(DataTable dt)
  33. {
  34. List<Book> list = new List<Book>();
  35. foreach (DataRow item in dt.Rows)
  36. {
  37. int id = int.Parse(item[0].ToString());//id
  38. string name = item[1].ToString();//name
  39. double price = double.Parse(item[2].ToString());//price
  40. double order_Price = double.Parse(item[3].ToString());//order_Price
  41. int cout = int.Parse(item[4].ToString());//count
  42. bool isStu = bool.Parse(item[5].ToString());
  43. Book b = new Book(id, name, price, order_Price, cout, isStu);
  44. list.Add(b);
  45. }
  46. return list;
  47. }
  48. public List<Book> GetBookList()
  49. {
  50. return _ToModuleBookList(_dal_getBookList());
  51. }
  52. public List<Book> GetBookListByName(string bkname)
  53. {
  54. return _ToModuleBookList(_dal_getBookListByName(bkname));
  55. }
  56. public Book GetOneBookByID(int id)
  57. {
  58. var list = _ToModuleBookList(_dal_getOneBookByID(id));
  59. if (list.Count==1)
  60. {
  61. return list[0];
  62. }
  63. else
  64. {
  65. return null;
  66. }
  67. }
  68. private int _dal_addNewBook(string bkname,double price,double orderprice, int count,bool studentBook )
  69. {
  70. using (OleDbCommand comm = new OleDbCommand(@"insert into books(bookname,price,order_price,books_count,IS_STUDENTBOOK)values('" + bkname + "'," + price + "," + orderprice + "," + count + "," + studentBook +")"))
  71. {
  72. return DBHelper.ExecuteNonQuery(comm);
  73. }
  74. }
  75. private int _dal_ModifyBook(int id, string bookname, double price, double orderprice, int count, bool studentBook)
  76. {
  77. using (OleDbCommand comm = new OleDbCommand(@"update books set bookname='" + bookname + "',price="+ price +",order_price=" + orderprice+ ",books_count=" + count +",IS_STUDENTBOOK=" + studentBook + " where id=" + id))
  78. {
  79. return DBHelper.ExecuteNonQuery(comm);
  80. }
  81. }
  82. public int AddNewBook(string bookname,double price,double orderprice,int count,bool studentBook)
  83. {
  84. return _dal_addNewBook(bookname, price, orderprice, count,studentBook);
  85. }
  86. public int ModifyBook(int id, string bookname, double price, double orderprice, int count, bool studentBook)
  87. {
  88. return _dal_ModifyBook(id, bookname, price, orderprice, count, studentBook);
  89. }
  90. #endregion
  91. #region 变更数量操作
  92. /// <summary>
  93. ///
  94. /// </summary>
  95. /// <param name="id"></param>
  96. /// <param name="count"></param>
  97. /// <param name="opertor"></param>
  98. /// <param name="time"></param>
  99. /// <returns>返回变更后的数量</returns>
  100. public int SellBookByID(int id,int count,string opertor,DateTime time)
  101. {
  102. int c = queryCountByID(id);
  103. if (c < count)
  104. {
  105. throw new Exception("没有足够数量的书可供售出!");
  106. }
  107. using (OleDbCommand comm = new OleDbCommand(@"update books set books_count = " + (c - count).ToString() + " where id = " + id.ToString() ))
  108. {
  109. DBHelper.ExecuteNonQuery(comm);
  110. }
  111. using (OleDbCommand comm = new OleDbCommand(@"insert into operate (op_book_no,op,op_date,op_count,operator,after_op_count) values
  112. (" + id + "," + ((int)EnumOP.售).ToString() + ",'" + time.ToString() + "'," + count.ToString() + ",'" + opertor + "'," + (c - count) + ")"))
  113. {
  114. //INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
  115. DBHelper.ExecuteNonQuery(comm);
  116. return c - count;
  117. }
  118. }
  119. /// <summary>
  120. ///
  121. /// </summary>
  122. /// <param name="id"></param>
  123. /// <param name="count"></param>
  124. /// <param name="opertor"></param>
  125. /// <param name="time"></param>
  126. /// <returns>返回变更后的数量</returns>
  127. public int Lingqu(int id, int count, string opertor, DateTime time)
  128. {
  129. int c = queryCountByID(id);
  130. if (c < count)
  131. {
  132. throw new Exception("没有足够数量的书可供领取!");
  133. }
  134. using (OleDbCommand comm = new OleDbCommand(@"update books set books_count = @ccount where id = @id"))
  135. {
  136. comm.Parameters.AddWithValue("@ccount", c - count);
  137. comm.Parameters.AddWithValue("@id", id);
  138. DBHelper.ExecuteNonQuery(comm);
  139. }
  140. using (OleDbCommand comm = new OleDbCommand(@"insert into operate (op_book_no,op,op_date,op_count,operator,after_op_count) values (@id,@op,@op_date,@op_count,@opertor,@after_op_count)"))
  141. {
  142. comm.Parameters.AddWithValue("@id", (uint)id);
  143. comm.Parameters.AddWithValue("@op", (int)EnumOP.领);
  144. comm.Parameters.AddWithValue("@op_date", time.ToString());
  145. comm.Parameters.AddWithValue("@op_count", count);
  146. comm.Parameters.AddWithValue("@opertor", opertor);
  147. comm.Parameters.AddWithValue("@after_op_count", c - count);
  148. //insert into operate (op_book_no,op,op_date,op_count,operator,after_op_count) values (?,?,?,?,?,?)
  149. //insert into operate (op_book_no,op,op_date,op_count,operator,after_op_count) values (1,2,'2018/2/6 10:48:09',1,'afsdf',1)
  150. //INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
  151. DBHelper.ExecuteNonQuery(comm);
  152. return c - count;
  153. }
  154. }
  155. /// <summary>
  156. ///
  157. /// </summary>
  158. /// <param name="id"></param>
  159. /// <param name="count"></param>
  160. /// <param name="oper"></param>
  161. /// <param name="time"></param>
  162. /// <returns>返回变更后的数量</returns>
  163. public int PurchaseBook(int id, int count, string oper, DateTime time, int bid)
  164. {
  165. int c = queryCountByID(id);
  166. using (OleDbCommand comm = new OleDbCommand(@"update books set books_count = @books_count where id = @id"))
  167. {
  168. comm.Parameters.AddWithValue("@books_count", c + count);
  169. comm.Parameters.AddWithValue("@id", id);
  170. DBHelper.ExecuteNonQuery(comm);
  171. }
  172. if (bid==0)
  173. {
  174. using (OleDbCommand comm = new OleDbCommand(@"insert into operate (op_book_no,op,op_date,op_count,operator,after_op_count) values
  175. (" + id + "," + ((int)EnumOP.购).ToString() + ",'" + time.ToString() + "'," + count.ToString() + ",'" + oper + "'," + (c + count) + ")"))
  176. {
  177. //INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
  178. DBHelper.ExecuteNonQuery(comm);
  179. return c + count;
  180. }
  181. }
  182. else
  183. {
  184. using (OleDbCommand comm = new OleDbCommand(@"insert into operate (op_book_no,op,op_date,op_count,operator,after_op_count,bid) values
  185. (" + id + "," + ((int)EnumOP.购).ToString() + ",'" + time.ToString() + "'," + count.ToString() + ",'" + oper + "'," + (c + count) + "," + bid + ")"))
  186. {
  187. //INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
  188. DBHelper.ExecuteNonQuery(comm);
  189. return c + count;
  190. }
  191. }
  192. }
  193. /// <summary>
  194. /// 返回BID
  195. /// </summary>
  196. /// <param name="totalcount"></param>
  197. /// <param name="time"></param>
  198. /// <returns></returns>
  199. public int Blist(int totalcount, DateTime time)
  200. {
  201. using (OleDbCommand comm = new OleDbCommand(@"insert into blist (bcount,bdate) values(" + totalcount + ",'" + time.ToString() + "')"))
  202. {
  203. DBHelper.ExecuteNonQuery(comm);
  204. }
  205. using (OleDbCommand comm = new OleDbCommand(@"SELECT MAX(BID) AS id FROM BLIST"))
  206. {
  207. var o = DBHelper.ExecuteScalar(comm);
  208. return Convert.ToInt32(o);
  209. }
  210. }
  211. /// <summary>
  212. ///
  213. /// </summary>
  214. /// <param name="id"></param>
  215. /// <param name="count"></param>
  216. /// <param name="oper"></param>
  217. /// <param name="time"></param>
  218. /// <returns>返回变更后的数量</returns>
  219. public int ReturnBookByID(int id, int count, string oper, DateTime time)
  220. {
  221. int c = queryCountByID(id);
  222. using (OleDbCommand comm = new OleDbCommand(@"update books set books_count = " + (c + count).ToString() + " where id = " + id.ToString()))
  223. {
  224. DBHelper.ExecuteNonQuery(comm);
  225. }
  226. using (OleDbCommand comm = new OleDbCommand(@"insert into operate (op_book_no,op,op_date,op_count,operator,after_op_count) values
  227. (" + id + "," + ((int)EnumOP.还).ToString() + ",'" + time.ToString() + "'," + count.ToString() + ",'" + oper + "'," + (c + count) + ")"))
  228. {
  229. //INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
  230. DBHelper.ExecuteNonQuery(comm);
  231. return c + count;
  232. }
  233. }
  234. #endregion
  235. #region 分操作
  236. //查询书的数量OK
  237. private int queryCountByID(int id )
  238. {
  239. using (OleDbCommand comm = new OleDbCommand(@"select books_count from books where id = @id"))
  240. {
  241. comm.Parameters.AddWithValue("@id", id);
  242. return Convert.ToInt32(DBHelper.ExecuteScalar(comm));
  243. }
  244. }
  245. //Untest
  246. private int queryIDByName(string bookname)
  247. {
  248. using (OleDbCommand comm = new OleDbCommand(@"select id from books where bookname = '" + bookname + "'"))
  249. {
  250. return Convert.ToInt32(DBHelper.ExecuteScalar(comm));
  251. }
  252. }
  253. #endregion
  254. #region 操作记录
  255. private DataTable _dal_getOPLOGByBookID(int id)
  256. {
  257. using (OleDbCommand comm = new OleDbCommand(@"SELECT top 1000 BOOKS.ID,BOOKS.BOOKNAME, OPERATE.OP, OPERATE.OP_DATE, OPERATE.OP_COUNT,after_op_count, OPERATE.OPERATOR,OPERATE.ID
  258. FROM (BOOKS INNER JOIN OPERATE ON BOOKS.ID = OPERATE.OP_BOOK_NO)
  259. WHERE (OPERATE.OP_BOOK_NO = " + id + @")
  260. ORDER BY OPERATE.OP_DATE DESC"))
  261. {
  262. return DBHelper.ExecuteDataTable(comm);
  263. }
  264. }
  265. private DataTable _dal_getOPLOGByBID(int Bid)
  266. {
  267. using (OleDbCommand comm = new OleDbCommand(@"SELECT top 1000 BOOKS.ID,BOOKS.BOOKNAME, OPERATE.OP, OPERATE.OP_DATE, OPERATE.OP_COUNT,after_op_count, OPERATE.OPERATOR,OPERATE.ID
  268. FROM (BOOKS INNER JOIN OPERATE ON BOOKS.ID = OPERATE.OP_BOOK_NO)
  269. WHERE (OPERATE.BID = " + Bid + @")
  270. ORDER BY OPERATE.OP_DATE DESC"))
  271. {
  272. return DBHelper.ExecuteDataTable(comm);
  273. }
  274. }
  275. private DataTable _dal_getOPLOGALL()
  276. {
  277. using (OleDbCommand comm = new OleDbCommand(@"SELECT TOP 1000 BOOKS.ID,BOOKS.BOOKNAME, OPERATE.OP, OPERATE.OP_DATE, OPERATE.OP_COUNT,after_op_count, OPERATE.OPERATOR,OPERATE.ID
  278. FROM (BOOKS INNER JOIN OPERATE ON BOOKS.ID = OPERATE.OP_BOOK_NO)
  279. ORDER BY OPERATE.OP_DATE DESC"))
  280. {
  281. return DBHelper.ExecuteDataTable(comm);
  282. }
  283. }
  284. private int _dal_ModifyOPLogByOPID(int opid, DateTime dt, string oper)
  285. {
  286. using (OleDbCommand comm = new OleDbCommand(@"update operate set OP_DATE=Cdate('"+dt.ToString("yyyy-MM-dd HH:mm:ss")+"'),operator = '"+oper+"' where id = " + opid))
  287. {
  288. return DBHelper.ExecuteNonQuery(comm);
  289. }
  290. }
  291. private List<OPLOG> _ToModuleSellList(DataTable dt)
  292. {
  293. List<OPLOG> list = new List<OPLOG>();
  294. foreach (DataRow item in dt.Rows)
  295. {
  296. int bkid = int.Parse(item[0].ToString());
  297. string bkname = item[1].ToString();
  298. EnumOP op = (EnumOP)Enum.Parse(typeof(EnumOP), item[2].ToString());
  299. DateTime opdate = DateTime.Parse(item[3].ToString());
  300. int cout = int.Parse(item[4].ToString());
  301. int afcount = int.Parse(item[5].ToString());
  302. string oper = item[6].ToString();
  303. int opid = int.Parse(item[7].ToString());
  304. OPLOG oplog = new OPLOG()
  305. {
  306. BookID = bkid,
  307. BookName = bkname,
  308. op = op,
  309. OPdatetime = opdate,
  310. OPCount = cout,
  311. AfterOPCount = afcount,
  312. oper = oper,
  313. OPID = opid
  314. };
  315. list.Add(oplog);
  316. }
  317. return list;
  318. }
  319. public List<OPLOG> GetOPLogByID(int id)
  320. {
  321. return _ToModuleSellList(_dal_getOPLOGByBookID(id));
  322. }
  323. public List<OPLOG> GetOPLogByBID(int bid)
  324. {
  325. return _ToModuleSellList(_dal_getOPLOGByBID(bid));
  326. }
  327. public List<OPLOG> GetOPLogALL()
  328. {
  329. return _ToModuleSellList(_dal_getOPLOGALL());
  330. }
  331. /// <summary>
  332. /// 修改操作记录
  333. /// </summary>
  334. /// <param name="opid"></param>
  335. /// <param name="dt"></param>
  336. /// <param name="oper"></param>
  337. /// <returns></returns>
  338. public int ModifyOPLog(int opid,DateTime dt,string oper)
  339. {
  340. return _dal_ModifyOPLogByOPID(opid, dt, oper);
  341. }
  342. /// <summary>
  343. /// 撤销操作记录
  344. /// </summary>
  345. /// <param name="opid"></param>
  346. /// <returns></returns>
  347. public int UndoOPByOPID(int opid)
  348. {
  349. using (OleDbCommand comm = new OleDbCommand(@"SELECT BOOKS.ID, BOOKS.BOOKNAME, OPERATE.OP, OPERATE.OP_DATE, OPERATE.OP_COUNT, OPERATE.AFTER_OP_COUNT, OPERATE.OPERATOR, OPERATE.ID AS OPID
  350. FROM (BOOKS INNER JOIN OPERATE ON BOOKS.ID = OPERATE.OP_BOOK_NO)
  351. WHERE (OPERATE.ID = " + opid + ")"))
  352. {
  353. var dt = DBHelper.ExecuteDataTable(comm);
  354. var oplogList = _ToModuleSellList(dt);
  355. if (oplogList.Count == 0)
  356. {
  357. return 0;
  358. }
  359. var oplog = oplogList[0];
  360. if (oplog.op == EnumOP.购 || oplog.op == EnumOP.还)
  361. {
  362. int c = queryCountByID(oplog.BookID);
  363. using (OleDbCommand comm2 = new OleDbCommand(@"update books set books_count = " + (c - oplog.OPCount).ToString() + " where id = " + oplog.BookID))
  364. {
  365. DBHelper.ExecuteNonQuery("delete from operate where ID = " + opid);
  366. return DBHelper.ExecuteNonQuery(comm2);
  367. }
  368. }
  369. if (oplog.op == EnumOP.领 || oplog.op == EnumOP.售)
  370. {
  371. int c = queryCountByID(oplog.BookID);
  372. using (OleDbCommand comm2 = new OleDbCommand(@"update books set books_count = " + (c + oplog.OPCount).ToString() + " where id = " + oplog.BookID))
  373. {
  374. DBHelper.ExecuteNonQuery("delete from operate where ID = " + opid);
  375. return DBHelper.ExecuteNonQuery(comm2);
  376. }
  377. }
  378. return 0;
  379. }
  380. }
  381. #endregion
  382. #region 销售统计
  383. private int _dal_getTotalSell()
  384. {
  385. using (OleDbCommand comm= new OleDbCommand(@"SELECT SUM(BOOKS.PRICE * OPERATE.OP_COUNT) AS Total
  386. FROM (BOOKS INNER JOIN OPERATE ON BOOKS.ID = OPERATE.OP_BOOK_NO)
  387. WHERE (OPERATE.OP = 1)"))
  388. {
  389. return Convert.ToInt32(DBHelper.ExecuteScalar(comm));
  390. }
  391. }
  392. private int GetTotalSell()
  393. {
  394. return _dal_getTotalSell();
  395. }
  396. private DataTable _dal_getSellList(DateTime dt_start, DateTime dt_end)
  397. {
  398. int year = DateTime.Now.Year;
  399. using (OleDbCommand comm = new OleDbCommand(@"SELECT BOOKS.ID AS 编号, BOOKS.BOOKNAME AS 书名, BOOKS.PRICE AS 定价, OPERATE.OP_COUNT AS 数量,
  400. OPERATE.OP_DATE AS 销售时间, OPERATE.OPERATOR AS 备注信息,
  401. BOOKS.PRICE * OPERATE.OP_COUNT AS 小计
  402. FROM (BOOKS INNER JOIN
  403. OPERATE ON BOOKS.ID = OPERATE.OP_BOOK_NO)
  404. WHERE (OPERATE.OP = 1) AND (OPERATE.OP_DATE > CDATE('" + dt_start.ToString("yyyy-MM-dd HH:mm:ss") + "')) and (OPERATE.OP_DATE < CDATE('" + dt_end.ToString("yyyy-MM-dd HH:mm:ss") + "'))"))
  405. {
  406. return DBHelper.ExecuteDataTable(comm);
  407. }
  408. }
  409. public DataTable GetSellList(DateTime start,DateTime end)
  410. {
  411. return _dal_getSellList(start,end);
  412. }
  413. /// <summary>
  414. /// 领取导出
  415. /// </summary>
  416. /// <param name="dt_start"></param>
  417. /// <param name="dt_end"></param>
  418. /// <returns></returns>
  419. public DataTable GetHandOutList(DateTime dt_start, DateTime dt_end)
  420. {
  421. int year = DateTime.Now.Year;
  422. using (OleDbCommand comm = new OleDbCommand(@"SELECT BOOKS.ID AS 编号, BOOKS.BOOKNAME AS 书名, BOOKS.PRICE AS 定价, OPERATE.OP_COUNT AS 数量,
  423. OPERATE.OP_DATE AS 领取时间, OPERATE.OPERATOR AS 备注信息,
  424. BOOKS.PRICE * OPERATE.OP_COUNT AS 小计
  425. FROM (BOOKS INNER JOIN
  426. OPERATE ON BOOKS.ID = OPERATE.OP_BOOK_NO)
  427. WHERE (OPERATE.OP = 2) AND (OPERATE.OP_DATE > CDATE('" + dt_start.ToString("yyyy-MM-dd HH:mm:ss") + "')) and (OPERATE.OP_DATE < CDATE('" + dt_end.ToString("yyyy-MM-dd HH:mm:ss") + "'))"))
  428. {
  429. return DBHelper.ExecuteDataTable(comm);
  430. }
  431. }
  432. #endregion
  433. #region ClearAll
  434. public bool ClearDataBase()
  435. {
  436. try
  437. {
  438. DBHelper.ExecuteNonQuery(@"delete * from operate");
  439. DBHelper.ExecuteNonQuery(@"delete * from books");
  440. DBHelper.ExecuteNonQuery(@"delete * from blist");
  441. DBHelper.ExecuteNonQuery(@"alter table operate alter column ID counter(1,1)");
  442. DBHelper.ExecuteNonQuery(@"alter table books alter column ID counter(1,1)");
  443. DBHelper.ExecuteNonQuery(@"alter table blist alter column BID counter(1,1)");
  444. return true;
  445. }
  446. catch (Exception)
  447. {
  448. return false;
  449. }
  450. }
  451. #endregion
  452. #region 批量购入记录
  453. private DataTable _dal_getBlist()
  454. {
  455. string command = "select * from blist";
  456. using (OleDbCommand comm = new OleDbCommand(command))
  457. {
  458. return DBHelper.ExecuteDataTable(comm);
  459. }
  460. }
  461. private List<BuyList> _ToModuleBuyList(DataTable dt)
  462. {
  463. List<BuyList> blist = new List<BuyList>();
  464. foreach (DataRow item in dt.Rows)
  465. {
  466. BuyList bl = new BuyList();
  467. bl.BID = int.Parse(item[0].ToString());
  468. bl.Count = int.Parse(item[1].ToString());
  469. bl.BuyDate = DateTime.Parse(item[2].ToString());
  470. blist.Add(bl);
  471. }
  472. return blist;
  473. }
  474. public List<BuyList> GetAllBuyList()
  475. {
  476. return _ToModuleBuyList(_dal_getBlist());
  477. }
  478. #endregion
  479. #region 书列表操作 针对表Booklist
  480. /// <summary>
  481. /// 获取书的列表的列表
  482. /// </summary>
  483. /// <returns></returns>
  484. public Dictionary<int, string> BookListALL()
  485. {
  486. return _ToModuleBookListList(_dal_getBookListList());
  487. }
  488. private DataTable _dal_getBookListList()
  489. {
  490. using (OleDbCommand comm = new OleDbCommand("select * from booklist"))
  491. {
  492. return DBHelper.ExecuteDataTable(comm);
  493. }
  494. }
  495. private Dictionary<int, string> _ToModuleBookListList(DataTable dt)
  496. {
  497. Dictionary<int, string> dic = new Dictionary<int, string>();
  498. foreach (DataRow item in dt.Rows)
  499. {
  500. int i = int.Parse(item[0].ToString());
  501. string s = item[2].ToString();
  502. dic.Add(i, s);
  503. }
  504. return dic;
  505. }
  506. public List<Book> GetBookListFromBookListID(int id)
  507. {
  508. List<Book> list = new List<Book>();
  509. string s = DBHelper.ExecuteScalar(new OleDbCommand("select booksid from booklist where lid = " + id)).ToString();
  510. var ids = s.Split(',');
  511. for (int i = 0; i < ids.Length; i++)
  512. {
  513. var bk = this.GetOneBookByID(int.Parse(ids[i]));
  514. list.Add(bk);
  515. }
  516. return list;
  517. }
  518. public int SaveBookList(List<Book> bklst,string tag)
  519. {
  520. //insert into books(bookname,price,order_price,books_count,IS_STUDENTBOOK)values('" + bkname + "'," + price + "," + orderprice + "," + count + "," + studentBook +")"))
  521. StringBuilder bkids = new StringBuilder();
  522. for (int i = 0; i < bklst.Count; i++)
  523. {
  524. if (bkids.Length==0)
  525. {
  526. bkids.Append(bklst[i].BookID);
  527. }
  528. else
  529. {
  530. bkids.Append("," + bklst[i].BookID);
  531. }
  532. }
  533. using (OleDbCommand comm = new OleDbCommand("insert into booklist(booksid,tag)values('"+ bkids.ToString() +"','" + tag + "' )"))
  534. {
  535. return DBHelper.ExecuteNonQuery(comm);
  536. }
  537. }
  538. public int RemoveBookListByBookListID(int id)
  539. {
  540. return DBHelper.ExecuteNonQuery(new OleDbCommand("delete from booklist where lid = " + id));
  541. }
  542. #endregion
  543. public string TestCon()
  544. {
  545. StringBuilder sb = new StringBuilder();
  546. sb.AppendLine("queryCountByID");
  547. sb.AppendLine(queryCountByID(1).ToString());
  548. sb.AppendLine("Lingqu");
  549. sb.AppendLine(Lingqu(1, 7, "ling", DateTime.Now).ToString());
  550. return sb.ToString();
  551. }
  552. }
  553. }