Page_UserControl1.xaml.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Data.SQLite;
  5. using System.IO;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows;
  10. using System.Windows.Controls;
  11. using System.Windows.Data;
  12. using System.Windows.Documents;
  13. using System.Windows.Input;
  14. using System.Windows.Media;
  15. using System.Windows.Media.Imaging;
  16. using System.Windows.Navigation;
  17. using System.Windows.Shapes;
  18. namespace AIRS.usercontrol
  19. {
  20. /// <summary>
  21. /// Page_UserControl1.xaml 的交互逻辑
  22. /// </summary>
  23. public partial class Page_UserControl1 : UserControl
  24. {
  25. public Page_UserControl1()
  26. {
  27. InitializeComponent();
  28. }
  29. #region 数据库连接对象
  30. /// <summary>
  31. /// 数据库连接对象
  32. /// </summary>
  33. SQLiteConnection conn = null;
  34. /// <summary>
  35. /// 数据库连接字符串
  36. /// </summary>
  37. SQLiteConnectionStringBuilder connstr = null;
  38. /// <summary>
  39. /// 当前工作目录
  40. /// </summary>
  41. private string path = Directory.GetCurrentDirectory();
  42. #endregion
  43. #region 分页变量
  44. /// <summary>
  45. /// 当前页码
  46. /// </summary>
  47. private int m_Page = 1;
  48. /// <summary>
  49. /// 总条数
  50. /// </summary>
  51. private int m_Total = 0;
  52. /// <summary>
  53. /// 总页数
  54. /// </summary>
  55. private int m_Count = 1;
  56. /// <summary>
  57. /// 每页条数
  58. /// </summary>
  59. private int m_Page_Count = 1;
  60. #endregion
  61. #region 分页按钮事件
  62. /// <summary>
  63. /// 上一页
  64. /// </summary>
  65. /// <param name="sender"></param>
  66. /// <param name="e"></param>
  67. private void pro_btn_Click(object sender, RoutedEventArgs e)
  68. {
  69. if (m_Page == 1)
  70. {
  71. MessageBox.Show("已经是第一页!");
  72. return;
  73. }
  74. m_Page--;
  75. GetAllUser(m_Page, m_Page_Count);
  76. }
  77. /// <summary>
  78. /// 首页
  79. /// </summary>
  80. /// <param name="sender"></param>
  81. /// <param name="e"></param>
  82. private void first_btn_Click(object sender, RoutedEventArgs e)
  83. {
  84. if (m_Page == 1)
  85. {
  86. MessageBox.Show("已经是第一页!");
  87. return;
  88. }
  89. m_Page = 1;
  90. GetAllUser(m_Page, m_Page_Count);
  91. }
  92. /// <summary>
  93. /// 下一页
  94. /// </summary>
  95. /// <param name="sender"></param>
  96. /// <param name="e"></param>
  97. private void next_btn_Click(object sender, RoutedEventArgs e)
  98. {
  99. if (m_Page >= m_Count)
  100. {
  101. MessageBox.Show("已经是最后一页!");
  102. return;
  103. }
  104. m_Page++;
  105. GetAllUser(m_Page, m_Page_Count);
  106. }
  107. /// <summary>
  108. /// 尾页
  109. /// </summary>
  110. /// <param name="sender"></param>
  111. /// <param name="e"></param>
  112. private void last_btn_Click(object sender, RoutedEventArgs e)
  113. {
  114. if (m_Page >= m_Count)
  115. {
  116. MessageBox.Show("已经是最后一页!");
  117. return;
  118. }
  119. m_Page = m_Count;
  120. GetAllUser(m_Page,m_Page_Count);
  121. }
  122. #endregion
  123. #region 数据库操作
  124. /// <summary>
  125. /// 获取数据库连接对象
  126. /// </summary>
  127. /// <returns></returns>
  128. private SQLiteConnection GetConnection()
  129. {
  130. SQLiteConnection con = new SQLiteConnection();
  131. SQLiteConnectionStringBuilder constr = new SQLiteConnectionStringBuilder();
  132. constr.DataSource = path + "\\datas.db";
  133. con.ConnectionString = constr.ToString();
  134. con.Open();
  135. return con;
  136. }
  137. /// <summary>
  138. /// 获取所有用户
  139. /// </summary>
  140. /// <param name="page">当前页码</param>
  141. /// <param name="count">每页条数</param>
  142. private void GetAllUser(int page,int count)
  143. {
  144. try
  145. {
  146. conn = GetConnection();
  147. string strSql = "select * from t_username where username!='admin' limit " + ((page - 1) * count) + "," + count + "";
  148. SQLiteDataAdapter da = new SQLiteDataAdapter(strSql, conn);
  149. DataTable dt = new DataTable();
  150. da.Fill(dt);
  151. string strcountSql = "select count(*) as count from t_username where username!='admin' ";
  152. da = new SQLiteDataAdapter(strcountSql, conn);
  153. DataTable dtcount = new DataTable();
  154. da.Fill(dtcount);
  155. if (dtcount.Rows.Count>0)
  156. {
  157. m_Total = Convert.ToInt32(dtcount.Rows[0][0]);//总条数
  158. m_Count = (int)Math.Ceiling(((double)m_Total /(double) m_Page_Count));
  159. }
  160. List<RowData> list = new List<RowData>();
  161. for (int i = 0; i < dt.Rows.Count; i++)
  162. {
  163. RowData dar = new RowData();
  164. dar.username = dt.Rows[i]["username"].ToString();
  165. dar.password = dt.Rows[i]["password"].ToString();
  166. list.Add(dar);
  167. }
  168. date_grid.DataContext = list;
  169. //this.pageuser.FontSize = 36;
  170. this.pageuser.Page = m_Page;
  171. //this.pageuser.PageCount = m_Count;
  172. this.pageuser.PageSize = m_Page_Count;
  173. this.pageuser.RecordCount = m_Total;
  174. }
  175. catch (Exception ex)
  176. {
  177. }
  178. finally
  179. {
  180. try
  181. {
  182. conn.Close();
  183. }
  184. catch
  185. {
  186. }
  187. }
  188. }
  189. /// <summary>
  190. /// 删除指定用户
  191. /// </summary>
  192. /// <returns></returns>
  193. private bool DelUserByName(string username)
  194. {
  195. try
  196. {
  197. conn = GetConnection();
  198. SQLiteCommand cmd = conn.CreateCommand();
  199. cmd.CommandText = "delete from t_username where username=@username";
  200. cmd.Parameters.Add(new SQLiteParameter("@username"));
  201. cmd.Parameters["@username"].Value = username;
  202. if (cmd.ExecuteNonQuery() > 0)
  203. {
  204. return true;
  205. }
  206. else
  207. {
  208. return false;
  209. }
  210. }
  211. catch (Exception ex)
  212. {
  213. }
  214. finally
  215. {
  216. try
  217. {
  218. conn.Close();
  219. }
  220. catch
  221. {
  222. }
  223. }
  224. return false;
  225. }
  226. #endregion
  227. /// <summary>
  228. /// 序号列
  229. /// </summary>
  230. /// <param name="sender"></param>
  231. /// <param name="e"></param>
  232. private void date_grid_LoadingRow(object sender, DataGridRowEventArgs e)
  233. {
  234. e.Row.Header = e.Row.GetIndex() + 1;
  235. }
  236. /// <summary>
  237. /// 查询按钮
  238. /// </summary>
  239. /// <param name="sender"></param>
  240. /// <param name="e"></param>
  241. private void btn_query_Copy_Click(object sender, RoutedEventArgs e)
  242. {
  243. m_Page = 1;
  244. GetAllUser(m_Page, m_Page_Count);
  245. }
  246. /// <summary>
  247. /// 添加
  248. /// </summary>
  249. /// <param name="sender"></param>
  250. /// <param name="e"></param>
  251. private void btn_add_Click(object sender, RoutedEventArgs e)
  252. {
  253. UpUser us = new UpUser();
  254. us.BtnLogin.Content = "添加";
  255. us.titel.Content = "添加检察员";
  256. us.ShowInTaskbar = false;
  257. us.conn = GetConnection();
  258. us.ShowDialog();
  259. if (us.DialogResult == true)
  260. {
  261. MessageBox.Show("添加成功!");
  262. m_Page = 1;
  263. GetAllUser(m_Page, m_Page_Count);
  264. try
  265. {
  266. us.conn.Close();
  267. }
  268. catch
  269. {
  270. }
  271. }
  272. }
  273. /// <summary>
  274. /// 修改用户
  275. /// </summary>
  276. /// <param name="sender"></param>
  277. /// <param name="e"></param>
  278. private void Button_Click(object sender, RoutedEventArgs e)
  279. {
  280. string username = ((Button)sender).Tag == null ? "" : ((Button)sender).Tag.ToString();
  281. if (username.Equals("admin"))
  282. {
  283. MessageBox.Show("管理员不可以修改!");
  284. return;
  285. }
  286. UpUser us = new UpUser();
  287. us.BtnLogin.Content = "修改";
  288. us.titel.Content = "修改检察员";
  289. us.ShowInTaskbar = false;
  290. us.username = username;
  291. us.conn = GetConnection();
  292. us.cbbLoginname.Text = username;
  293. us.ShowDialog();
  294. if (us.DialogResult == true)
  295. {
  296. MessageBox.Show("修改成功!");
  297. m_Page = 1;
  298. GetAllUser(m_Page, m_Page_Count);
  299. try
  300. {
  301. us.conn.Close();
  302. }
  303. catch
  304. {
  305. }
  306. }
  307. }
  308. /// <summary>
  309. /// 删除
  310. /// </summary>
  311. /// <param name="sender"></param>
  312. /// <param name="e"></param>
  313. private void Button_Click_1(object sender, RoutedEventArgs e)
  314. {
  315. string username = ((Button)sender).Tag == null ? "" : ((Button)sender).Tag.ToString();
  316. if (username.Equals("admin"))
  317. {
  318. MessageBox.Show("管理员不可以删除!");
  319. return;
  320. }
  321. if (DelUserByName(username))
  322. {
  323. MessageBox.Show("删除成功!");
  324. m_Page = 1;
  325. GetAllUser(m_Page, m_Page_Count);
  326. }
  327. else
  328. {
  329. MessageBox.Show("删除失败!");
  330. }
  331. }
  332. /// <summary>
  333. /// 窗体加载完后执行
  334. /// </summary>
  335. /// <param name="sender"></param>
  336. /// <param name="e"></param>
  337. private void UserControl_Loaded(object sender, RoutedEventArgs e)
  338. {
  339. this.pageuser.PageChanged += new EventHandler<PageChangedEventArgs>(Eventpage);
  340. GetAllUser(m_Page, m_Page_Count);
  341. }
  342. /// <summary>
  343. /// 自定义分页事件
  344. /// </summary>
  345. /// <param name="sender"></param>
  346. /// <param name="a"></param>
  347. public void Eventpage(object sender, PageChangedEventArgs a)
  348. {
  349. m_Page = a.Page;
  350. GetAllUser(m_Page, m_Page_Count);
  351. }
  352. }
  353. #region 显示列类
  354. /// <summary>
  355. /// 显示列类
  356. /// </summary>
  357. public class RowData
  358. {
  359. /// <summary>
  360. /// 用户名
  361. /// </summary>
  362. public string username { get; set; }
  363. /// <summary>
  364. /// 密码
  365. /// </summary>
  366. public string password { get; set; }
  367. }
  368. #endregion
  369. }