tnblog
首页
视频
资源
登录

ado.net基本使用,sqlhelper简单封装,dbhelper简单使用

4658人阅读 2022/10/1 22:45 总访问:294552 评论:0 收藏:0 手机
分类: 数据库

sqlhelper简单封装

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data.SqlClient;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using System.Configuration;
  8. using System.Data;
  9. namespace DAL
  10. {
  11. public class SqlHelper
  12. {
  13. string connstr = "";
  14. public SqlHelper()
  15. {
  16. //读取链接字符串
  17. connstr = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
  18. }
  19. public int Execute(string sql, List<SqlParameter> param = null)
  20. {
  21. using (SqlConnection conn = new SqlConnection(connstr))
  22. {
  23. conn.Open();
  24. using (SqlCommand com = new SqlCommand(sql, conn))
  25. {
  26. //参数化
  27. if (param != null)
  28. com.Parameters.AddRange(param.ToArray());
  29. return com.ExecuteNonQuery();
  30. }
  31. }
  32. }
  33. public object ExecuteScalar(string sql, List<SqlParameter> param = null)
  34. {
  35. using (SqlConnection conn = new SqlConnection(connstr))
  36. {
  37. conn.Open();
  38. using (SqlCommand com = new SqlCommand(sql, conn))
  39. {
  40. //参数化
  41. if (param != null)
  42. com.Parameters.AddRange(param.ToArray());
  43. return com.ExecuteScalar();
  44. }
  45. }
  46. }
  47. public DataTable QueryTable(string sql, List<SqlParameter> param = null)
  48. {
  49. using (SqlConnection conn = new SqlConnection(connstr))
  50. {
  51. conn.Open();
  52. using (SqlCommand com = new SqlCommand(sql, conn))
  53. {
  54. //参数化
  55. if (param != null)
  56. com.Parameters.AddRange(param.ToArray());
  57. DataTable dt = new DataTable();
  58. SqlDataAdapter sda = new SqlDataAdapter(com);
  59. //把查询结果放入表格
  60. sda.Fill(dt);
  61. return dt;
  62. }
  63. }
  64. }
  65. }
  66. }

简单使用1

  1. public class UsersDAL
  2. {
  3. public List<Users> GetUsers()
  4. {
  5. try
  6. {
  7. SqlServerHelper sqlHelper = new SqlServerHelper();
  8. string sql = "select * from Users";
  9. DataTable dataTable = sqlHelper.QueryTable(sql);
  10. List<Users> WacUsersList = new List<Users>();
  11. //把表格解析中对象集合
  12. for (int i = 0; i < dataTable.Rows.Count; i++)
  13. {
  14. Users user = new Users();
  15. user.Id = Convert.ToInt32(dataTable.Rows[i]["Id"]);
  16. user.UserName = dataTable.Rows[i]["UserName"] + "";
  17. user.Number = dataTable.Rows[i]["Number"] + "";
  18. user.UClass = dataTable.Rows[i]["UClass"] + "";
  19. WacUsersList.Add(user);
  20. }
  21. return WacUsersList;
  22. }
  23. catch (Exception ex)
  24. {
  25. return null;
  26. }
  27. }
  28. }

实体

  1. public class Users
  2. {
  3. public int Id { get; set; }
  4. public string UserName { get; set; }
  5. public string Number { get; set; }
  6. public string UClass { get; set; }
  7. }

测试sql

  1. create table Users
  2. (
  3. Id int primary key identity(1,1),
  4. UserName nvarchar(64),
  5. Number nvarchar(64),
  6. UClass nvarchar(64)
  7. )
  8. select * from Users
  9. insert Users values('貂蝉','NS001','NET52')
  10. insert Users values('吕布','NS002','NET52')
  11. insert Users values('丁原','NS002','NET52')
  12. insert Users values('董卓','NS002','NET52')
  13. insert Users values('王允','NS003','NET52')

简单使用2

  1. using Model;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using System.Data.SqlClient;
  8. using System.Data;
  9. namespace DAL
  10. {
  11. public class UsersDAL
  12. {
  13. /// <summary>
  14. /// 总页数
  15. /// </summary>
  16. /// <returns></returns>
  17. public int GetAllPage(int _rows, string usrename, string number)
  18. {
  19. SqlHelper sh = new SqlHelper();
  20. //sql条件
  21. string sqlparam = "";
  22. List<SqlParameter> splist = new List<SqlParameter>();
  23. if (!string.IsNullOrWhiteSpace(number))
  24. {
  25. sqlparam = " and number=@number ";
  26. splist.Add(new SqlParameter("number", number));
  27. }
  28. if (!string.IsNullOrWhiteSpace(usrename))
  29. {
  30. sqlparam += " and username=@username ";
  31. splist.Add(new SqlParameter("username", usrename));
  32. }
  33. string sql = string.Format("select count(1) from users where 1=1 {0}", sqlparam);
  34. int allcount = Convert.ToInt32(sh.ExecuteScalar(sql, splist));
  35. //总条数变成总页数
  36. int allpage = allcount / _rows;
  37. if (allcount % _rows != 0)
  38. {
  39. allpage++;
  40. }
  41. return allpage;
  42. }
  43. public List<Users> GetUser(int _page, int _rows, string usrename, string number)
  44. {
  45. SqlHelper sh = new SqlHelper();
  46. //1 1-5 (page-1)*rows+1 = (1-1)*5+1=1
  47. //2 6-10 (page-1)*rows+1 = (2-1)*5+1=6
  48. //3 11-15 (page-1)*rows+1 = (3-1)*5+1=11
  49. //sql条件
  50. string sqlparam = "";
  51. List<SqlParameter> splist = new List<SqlParameter>();
  52. if (!string.IsNullOrWhiteSpace(number))
  53. {
  54. sqlparam += " and number=@number ";
  55. splist.Add(new SqlParameter("number", number));
  56. }
  57. if (!string.IsNullOrWhiteSpace(usrename))
  58. {
  59. sqlparam += " and username=@username ";
  60. splist.Add(new SqlParameter("username", usrename));
  61. }
  62. string sql = string.Format(@" select * from ( select *,ROW_NUMBER() over(order by id) as 'rownum' from Users where 1 = 1 {0} )
  63. temp where rownum between {1} and {2} ", sqlparam, (_page - 1) * _rows + 1, _page * _rows);
  64. DataTable dt = sh.QueryTable(sql, splist);
  65. List<Users> ulist = new List<Users>();
  66. //把表格解析中对象集合
  67. for (int i = 0; i < dt.Rows.Count; i++)
  68. {
  69. Users user = new Users();
  70. user.Id = Convert.ToInt32(dt.Rows[i]["Id"]);
  71. user.UserName = dt.Rows[i]["UserName"].ToString();
  72. user.Number = dt.Rows[i]["Number"].ToString();
  73. user.UClass = dt.Rows[i]["UClass"].ToString();
  74. ulist.Add(user);
  75. }
  76. return ulist;
  77. }
  78. }
  79. }
评价

风清月

2019/3/19 11:37:45

牛掰o( ̄▽ ̄)d ,这种控制台的效果看着就是要比有界面的高端一些

雨雨雨雨辰

2019/3/19 13:48:29

66666

旧年素颜,君记否
排名
22
文章
14
粉丝
21
评论
27
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术