C# 使用SqlSugar数据库操作中间件操作数据库

使用C#进行上位机的开发过程中,需要直接操作数据库。一直以来都是直接写数据库连接字符串。这种操作一般来说没有什么问题,但是有不少问题难以处理。

问题说明

1:操作数据库如果上位机上时间开机,可能在一定时间内,没有进行数据库操作,数据库连接就会断开,一般是8个小时。数据库连接断开后,还需要程序去重新连接。目前操作是进行一个ping操作。
2:非线程安全的,如果牵扯到多个线程使用同一个Connection来操作数据库,可能出现线程问题。操作失败。然后就需要重启软件了。
3:数据库操作后获取到的数据都是DataSet的。没有明显的数据结构定义,在开发过程中,想后去某个特定的值,需要看字段名字,操作非常不方便,非常低效。
4:需要些很多Sql语句。这些Sql语句非常容易出错,不知道哪里就有问题了,然后如果多一个字段或者少一个字段,修改起来没有经过严格测试就会报错,而这种报错不容易被发现。

解决办法

当看到SqlSuagar ORM中间件后,发现SqlSugar能够解决以上所有问题。本文主要介绍C#中通过SqlSugar的建立一个Connection,线程安全的。
SqlSugar是一个非常强的ORM工具,官网地址:SqlSugar

具体代码如下所示:

  1. public class SqlSugarHelper
  2. {
  3. private SqlSugarHelper()
  4. {
  5. }
  6. private static SqlSugarHelper instance = null;
  7. public static SqlSugarHelper GetInstance()
  8. {
  9. if (instance == null)
  10. {
  11. instance = new SqlSugarHelper();
  12. }
  13. return instance;
  14. }
  15. private SqlSugar.SqlSugarScope dataBase = null;
  16. /// <summary>
  17. /// 获取database对象
  18. /// </summary>
  19. /// <returns></returns>
  20. public SqlSugar.SqlSugarScope GetDataBase()
  21. {
  22. if (dataBase == null)
  23. {
  24. ////用户名
  25. //string uId = ConfigurationManager.AppSettings["userId"].ToString();
  26. ////密码
  27. //string pwd = ConfigurationManager.AppSettings["pwd"].ToString();
  28. // //服务器地址
  29. //string server = ConfigurationManager.AppSettings["serverIp"].ToString();
  30. ////端口
  31. //int port = int.Parse(ConfigurationManager.AppSettings["port"].ToString());
  32. ////数据库名称
  33. //string dbName = ConfigurationManager.AppSettings["dbName"].ToString();
  34. //
  35. string dataSource = ConfigurationManager.AppSettings["oracle_datasource"];
  36. string userId = ConfigurationManager.AppSettings["oracle_userId"];
  37. string pwd = ConfigurationManager.AppSettings["oracle_pwd"];
  38. string dbName = ConfigurationManager.AppSettings["oracle_dbName"];
  39. dataBase = new SqlSugar.SqlSugarScope(new SqlSugar.ConnectionConfig()
  40. {
  41. //ConnectionString = $"server={server};port ={port};uid={uId};pwd={pwd};database={dbName};",
  42. ConnectionString = $"Data Source={dataSource};User ID={userId};Password={pwd}",
  43. DbType = SqlSugar.DbType.Oracle,
  44. IsAutoCloseConnection = true,
  45. MoreSettings = new ConnMoreSettings()
  46. {
  47. IsAutoToUpper = false //是否转大写,默认是转大写的可以禁止转大写
  48. }
  49. },
  50. db => {
  51. db.Aop.OnLogExecuting = (sql, args) => {
  52. //查看执行的sql性能无影响 打印成为日志,有那些sql语句被执行了
  53. Console.WriteLine(sql);
  54. };
  55. });;
  56. }
  57. return dataBase;
  58. }
  59. }

前提
需要通过NuGet安装SqlSugar组件。上面的代码才能正确运行。
数据库的地址 用户名 密码 等 通过app.settting配置。在使用的时候读取出来。

怎么使用?

  1. 读取当前数据库中的 结构信息
  2. List<SqlSugar.DbTableInfo> tableInfo = sqlsugar.SqlSugarHelper.GetInstance().GetDataBase().DbMaintenance.GetTableInfoList(false);
  3. 通过查询条件查询数据库中的数据 并且进行分页操作
  4. var result = sqlsugar.SqlSugarHelper.GetInstance().GetDataBase().Queryable<models.dbmodels.【modelName】>()
  5. Where(item=> item.Deleted == false).WhereIF(
  6. beginTime != ""
  7. ).
  8. WhereIF(endTime != "".ToPageList(pageNum, pageSize, ref allTotal) ;

其中[modelName]是数据库中指定表映射过来的实体类。

本文主要介绍了一下SqlSuagar的数据库连接。

在后面的文章中会介绍,怎么根据数据库表结构生成对应的实体类。

联系方式

Tel:17320170935(微信同号-添加请备注微见-KTV)
QQ:472198980 (添加请备注 微见-KTV)

2024-04-07 15:18:09  user 阅读(209) 评论(0) 标签:C#,sqlSugar,数据库,表结构,数据库模型,ORM 分类:C#