当前位置: 首页 > news >正文

C#控制台连接Mysql数据库,有配置数据库连接字符串的配置文件

C#控制台连接Mysql数据库,有配置数据库连接字符串的配置文件

实现功能

  1. 读取..txt 中的配置文件,来初始化连接字符串
  2. 让连接字符串的配置文件不存在会主动创建默认的连接字符串

注意点:

  1. 需要引用Newtonsoft
  2. 使用mysql

代码如下

using System;
using MySql.Data.MySqlClient;
using Newtonsoft.Json;namespace 连接数据库
{class Program{static void Main(string[] args){string filePath = AppDomain.CurrentDomain.BaseDirectory + "ConnectionStrConfig.txt";//设置文件路径if (!System.IO.File.Exists(filePath))//判断文件是否存在{Console.WriteLine("文件不存在!已创建新的文件,请重启程序");System.IO.File.CreateText(filePath);//创建文件System.IO.File.WriteAllText(filePath, CreateDefaultConnectionString());//写入文件内容,默认的数据库配置文件return;//程序退出}string configFile = System.IO.File.ReadAllText(filePath);//读取文件内容if (configFile.Length == 0)//文件内容是空的{Console.WriteLine("没有读取到内容");System.IO.File.WriteAllText(filePath, CreateDefaultConnectionString());//写入文件内容,默认的数据库配置文件return;}Console.WriteLine(configFile);ConnectionStrConfig connectionStrConfig;try{connectionStrConfig = JsonConvert.DeserializeObject<ConnectionStrConfig>(configFile);//将读取到的内容转成配置文件的对象}catch (Exception e){Console.WriteLine("Josn 序列化失败,检查配置文件");//转换失败Console.ReadKey();return;}if (connectionStrConfig.Database == null){Console.WriteLine("Josn 序列化失败,检查配置文件");//转换失败return;}// 与数据库连接的信息MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder();//用户名builder.UserID = connectionStrConfig.UserID;//密码builder.Password = connectionStrConfig.Password;//服务器地址builder.Server = connectionStrConfig.Server;//连接时的数据库builder.Database = connectionStrConfig.Database;//设置端口号builder.Port = connectionStrConfig.Port;//定义与数据连接的链接MySqlConnection connection = new MySqlConnection(builder.ConnectionString);//打开这个链接connection.Open();//connection.OpenAsync();Console.WriteLine("这是一个控制台程序");Console.WriteLine("这是一个控制台程序,数据库连接完成");Console.ReadKey();connection.Close();//数据库连接关闭//connection.CloseAsync();Console.WriteLine("数据库连接断开");Console.ReadKey();}/// <summary>/// 创建默认的连接字符串/// </summary>/// <returns>默认的配置文件的string</returns>static string CreateDefaultConnectionString(){string defaultString = "";//默认连接字符串的配置文件ConnectionStrConfig connectionStrConfig = new ConnectionStrConfig("root", "root", "localhost", "testdatabase", 3308);//通过”构造函数“ 创建默认的连接字符串的配置文件defaultString = JsonConvert.SerializeObject(connectionStrConfig);//Json序列化为stringreturn defaultString;}}[Serializable]class ConnectionStrConfig{private string userid;private string password;private string server;private string database;private uint port;/// <summary>/// 用户名/// </summary>public string UserID{get{return userid;}private set{userid = value;}}/// <summary>/// 密码/// </summary>public string Password{get{return password;}private set{password = value;}}/// <summary>/// 服务地址/// </summary>public string Server{get{return server;}private set{server = value;}}/// <summary>/// 数据库名称/// </summary>public string Database{get{return database;}private set{database = value;}}/// <summary>/// 端口号/// </summary>public uint Port{get{return port;}private set{port = value;}}/// <summary>/// 数据库连接字符串的配置文件/// </summary>/// <param name="userid">用户名</param>/// <param name="password">密码</param>/// <param name="server">服务</param>/// <param name="database">数据库名称</param>/// <param name="port">端口号</param>public ConnectionStrConfig(string userid, string password,string server,string database,uint port){this.userid = userid;this.password = password;this.server = server;this.database = database;this.port = port;}//public ConnectionStrConfig()//{当反序列化对象的时候,被反序列化的对象如果有get或者set修饰的属性,那么就不可以显式的写无参的构造函数。//}}}
http://www.lryc.cn/news/155058.html

相关文章:

  • PowerBuilder连接SQLITE3
  • Git 基本原理和常用操作
  • 单元测试和集成测试的区别
  • node基础概念
  • ArcGIS Maps SDK for JS(二):MapView简介----创建2D地图
  • 知识图谱推理研究综述9.3
  • 详细介绍c++中的类
  • C语言:扫雷小游戏
  • VScode SSH无法免密登录
  • Spring Cloud--从零开始搭建微服务基础环境【四】
  • FreeRTOS操作系统中,断言输出 Error:..\..\FreeRTOS\portable\RVDS\ARM_CM4F\port.c,766 原因
  • 【Linux】进程间通信与同步
  • SpringBoot 统一功能处理
  • 解决:sh: vite: command not found
  • el-select下拉多选框 el-select 设置默认值不可删除功能
  • Jetsonnano B01 笔记1:基础理解—网络配置—远程连接
  • Ubuntu系统信息查看指南:了解你的操作系统
  • 【STM32】学习笔记-SPI通信
  • 解决vue项目首行报红( ESLint 配置)和新建的vue文件首行报红问题
  • Linux 调试技术 Kprobe
  • 一文了解评估 K8s 原生存储产品需要关注的关键能力
  • linux免密登录报错 Bad owner or permissions on /etc/ssh/ssh_config.d/05-redhat.conf
  • Kafka常用参数
  • NFT Insider#105:The Sandbox即将参加韩国区块链周,YGG的声誉和进步(RAP)将引领玩家晋升到下一层级
  • TCP socket error (The proxy type is invalid for this operation).
  • 根据需求生成一个Vue模块的类图示例
  • C# 类class、继承、多态性、运算符重载,相关练习题
  • Mysql高级(进阶)SQL语句
  • java八股文面试[JVM]——JVM性能优化
  • 联发科MTK6762/MT6762核心板_安卓主板小尺寸低功耗4G智能模块