当前位置:   article > 正文

使用SqlSugar连接多个数据库(sqlserver,sqlite,mysql)_sqlsugar 多数据库

sqlsugar 多数据库

    有时候,一个项目只有一个数据库,比如只有SQLite,或者MySQL数据库,那么我们只需要使用一个固定的数据库即可。但是一个项目如果写好了,有多个用户使用,但是多个用户使用不同的数据库,这个时候,我们就需要把软件设计成可以连接多个数据库的模式,用什么数据库,就配置什么数据库即可。

本例子分别使用

sqlserver

mysql

SQLite

1.建立一个wpf程序,使用.net5

2.安装SqlSugar

3.建立HelperDB

  1. using SqlSugar;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Configuration;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace SqlSugarDemo
  9. {
  10. public static class HelperDB
  11. {
  12. public static SqlSugarClient SqlSugarClient
  13. {
  14. get
  15. {
  16. return new SqlSugarClient(new ConnectionConfig()
  17. {
  18. DbType = SetDBType(ConfigurationManager.AppSettings["DBType"]), //配置数据库类型
  19. ConnectionString = ConfigurationManager.AppSettings["ConnectionString"], //数据库连接字符串
  20. IsAutoCloseConnection = true,//设置为true无需使用using或者Close操作,自动关闭连接,不需要手动关闭数据链接
  21. InitKeyType = InitKeyType.SystemTable//默认SystemTable, 字段信息读取, 如:该属性是不是主键,是不是标识列等等信息
  22. });
  23. }
  24. }
  25. public static DbType SetDBType(string dbType)
  26. {
  27. DbType DBType;
  28. switch (dbType.ToLower())
  29. {
  30. case "sqlserver":
  31. DBType = DbType.SqlServer;
  32. break;
  33. case "sqlite":
  34. DBType = DbType.Sqlite;
  35. break;
  36. case "mysql":
  37. DBType = DbType.MySql;
  38. break;
  39. default:
  40. DBType = DbType.MySql;
  41. break;
  42. }
  43. return DBType;
  44. }
  45. }
  46. }

4.Users实体类,这个实体类要和数据库一样的,形成一一对应的关系。

数据库

此处,我们是先有数据库,然后手动创建的实体类。也可以使用SqlSugar工具箱或者代码自动生成实体类

Db First 实体生成 - SqlSugar 5x - .NET果糖网

代码

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace SqlSugarDemo
  7. {
  8. public class Users
  9. {
  10. public int Id { get; set; }
  11. public string Name { get; set; }
  12. public int age { get; set; }
  13. public string aa { get; set; }
  14. public string bb { get; set; }
  15. }
  16. }

5. MainWindow.xaml界面

  1. <Window x:Class="SqlSugarDemo.MainWindow"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6. xmlns:local="clr-namespace:SqlSugarDemo"
  7. mc:Ignorable="d"
  8. Title="MainWindow" Height="450" Width="800">
  9. <Grid>
  10. <Button x:Name="btn" Content="确定" Click="btn_Click" Width="100" Height="50"/>
  11. </Grid>
  12. </Window>

6.MainWindow.cs界面

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Windows;
  7. using System.Windows.Controls;
  8. using System.Windows.Data;
  9. using System.Windows.Documents;
  10. using System.Windows.Input;
  11. using System.Windows.Media;
  12. using System.Windows.Media.Imaging;
  13. using System.Windows.Navigation;
  14. using System.Windows.Shapes;
  15. namespace SqlSugarDemo
  16. {
  17. /// <summary>
  18. /// Interaction logic for MainWindow.xaml
  19. /// </summary>
  20. public partial class MainWindow : Window
  21. {
  22. public MainWindow()
  23. {
  24. InitializeComponent();
  25. }
  26. private void btn_Click(object sender, RoutedEventArgs e)
  27. {
  28. List<Users> users = HelperDB.SqlSugarClient.Queryable<Users>().Where(c => c.Name == "张三").ToList();
  29. }
  30. }
  31. }

7.修改App.config配置文件

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <configuration>
  3. <appSettings>
  4. <!--<add key="DBType" value="sqlserver" />
  5. <add key="ConnectionString" value="server=192.168.20.245;uid=sa;pwd=123456;database=mysqlCodeFirst" />-->
  6. <add key="DBType" value="mysql" />
  7. <add key="ConnectionString" value="server=localhost;Database=mysqlCodeFirst;Uid=root;Pwd=123456" />
  8. </appSettings>
  9. </configuration>

8.我们开启MySQL数据库,然后进行调试,看程序的结果

数据库中表的值

9. 我们修改配置,换成SqlServer数据库

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <configuration>
  3. <appSettings>
  4. <add key="DBType" value="sqlserver" />
  5. <add key="ConnectionString" value="server=192.168.20.245;uid=sa;pwd=123456;database=mysqlCodeFirst" />
  6. <!--<add key="DBType" value="mysql" />
  7. <add key="ConnectionString" value="server=localhost;Database=mysqlCodeFirst;Uid=root;Pwd=123456" />-->
  8. </appSettings>
  9. </configuration>

10.启动SqlServer数据库,然后进行调试,看程序的结果

数据库中表的值

11.Sqlite数据库,需要在代码里面创建数据库,建立表,再建立数据

配置文件

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <configuration>
  3. <appSettings>
  4. <!--<add key="DBType" value="sqlserver" />
  5. <add key="ConnectionString" value="server=192.168.20.245;uid=sa;pwd=123456;database=mysqlCodeFirst" />-->
  6. <!--<add key="DBType" value="mysql" />
  7. <add key="ConnectionString" value="server=localhost;Database=mysqlCodeFirst;Uid=root;Pwd=123456" />-->
  8. <add key="DBType" value="sqlite" />
  9. <add key="ConnectionString" value="DataBase\test.db" />
  10. </appSettings>
  11. </configuration>

HelperDB类文件 

  1. using Microsoft.Data.Sqlite;
  2. using SqlSugar;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Configuration;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace SqlSugarDemo
  10. {
  11. public static class HelperDB
  12. {
  13. public static string DBConnectionString { get; set; } = ConfigurationManager.AppSettings["ConnectionString"];
  14. public static SqlSugarClient SqlSugarClient
  15. {
  16. get
  17. {
  18. return new SqlSugarClient(new ConnectionConfig()
  19. {
  20. DbType = SetDBType(ConfigurationManager.AppSettings["DBType"]), //配置数据库类型
  21. ConnectionString = DBConnectionString, //数据库连接字符串
  22. IsAutoCloseConnection = true,//设置为true无需使用using或者Close操作,自动关闭连接,不需要手动关闭数据链接
  23. InitKeyType = InitKeyType.Attribute//默认SystemTable, 字段信息读取, 如:该属性是不是主键,是不是标识列等等信息
  24. });
  25. }
  26. }
  27. public static DbType SetDBType(string dbType)
  28. {
  29. DbType DBType;
  30. switch (dbType.ToLower())
  31. {
  32. case "sqlserver":
  33. DBType = DbType.SqlServer;
  34. break;
  35. case "sqlite":
  36. DBType = DbType.Sqlite;
  37. DBConnectionString = @"DataSource=" + AppDomain.CurrentDomain.BaseDirectory + ConfigurationManager.AppSettings["ConnectionString"];
  38. //DBConnectionString = new SqliteConnectionStringBuilder()
  39. //{
  40. // DataSource = @"E:\project\测试\SqlSugarDemo\bin\Debug\net5.0-windows\1.db" ,
  41. // Password = "123456" //高版本不支持密码,需要低版本
  42. //}.ToString();
  43. break;
  44. case "mysql":
  45. DBType = DbType.MySql;
  46. break;
  47. default:
  48. DBType = DbType.MySql;
  49. break;
  50. }
  51. return DBType;
  52. }
  53. }
  54. }

MainWindow.cs文件夹

  1. using Microsoft.Data.Sqlite;
  2. using SqlSugar;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Windows;
  9. using System.Windows.Controls;
  10. using System.Windows.Data;
  11. using System.Windows.Documents;
  12. using System.Windows.Input;
  13. using System.Windows.Media;
  14. using System.Windows.Media.Imaging;
  15. using System.Windows.Navigation;
  16. using System.Windows.Shapes;
  17. namespace SqlSugarDemo
  18. {
  19. /// <summary>
  20. /// Interaction logic for MainWindow.xaml
  21. /// </summary>
  22. public partial class MainWindow : Window
  23. {
  24. public MainWindow()
  25. {
  26. InitializeComponent();
  27. }
  28. private void btn_Click(object sender, RoutedEventArgs e)
  29. {
  30. HelperDB.SqlSugarClient.DbMaintenance.CreateDatabase(); //建库
  31. HelperDB.SqlSugarClient.CodeFirst.InitTables<Users>(); //建表
  32. Users users1 = new Users();
  33. users1.Id = 1;
  34. users1.Name = "张三";
  35. users1.age = 20;
  36. users1.aa = "111";
  37. users1.bb = "sqlite";
  38. HelperDB.SqlSugarClient.Insertable(users1).ExecuteCommand(); //插入数据
  39. var users = HelperDB.SqlSugarClient.Queryable<Users>().Where(c => c.Name == "张三").ToList(); //查询数据
  40. }
  41. }
  42. }

数据库中表的值

代码调试的值 

来源:使用SqlSugar连接多个数据库(sqlserver,sqlite,mysql)-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/950642
推荐阅读
相关标签
  

闽ICP备14008679号