C#控制臺(tái)連接Mysql數(shù)據(jù)庫(kù),有配置數(shù)據(jù)庫(kù)連接字符串的配置文件
實(shí)現(xiàn)功能文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-689396.html
- 讀取.
.txt
中的配置文件,來(lái)初始化連接字符串 - 讓連接字符串的配置文件不存在會(huì)主動(dòng)創(chuàng)建默認(rèn)的連接字符串
注意點(diǎn):文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-689396.html
- 需要引用Newtonsoft
- 使用mysql
代碼如下
using System;
using MySql.Data.MySqlClient;
using Newtonsoft.Json;
namespace 連接數(shù)據(jù)庫(kù)
{
class Program
{
static void Main(string[] args)
{
string filePath = AppDomain.CurrentDomain.BaseDirectory + "ConnectionStrConfig.txt";//設(shè)置文件路徑
if (!System.IO.File.Exists(filePath))//判斷文件是否存在
{
Console.WriteLine("文件不存在!已創(chuàng)建新的文件,請(qǐng)重啟程序");
System.IO.File.CreateText(filePath);//創(chuàng)建文件
System.IO.File.WriteAllText(filePath, CreateDefaultConnectionString());//寫(xiě)入文件內(nèi)容,默認(rèn)的數(shù)據(jù)庫(kù)配置文件
return;//程序退出
}
string configFile = System.IO.File.ReadAllText(filePath);//讀取文件內(nèi)容
if (configFile.Length == 0)//文件內(nèi)容是空的
{
Console.WriteLine("沒(méi)有讀取到內(nèi)容");
System.IO.File.WriteAllText(filePath, CreateDefaultConnectionString());//寫(xiě)入文件內(nèi)容,默認(rèn)的數(shù)據(jù)庫(kù)配置文件
return;
}
Console.WriteLine(configFile);
ConnectionStrConfig connectionStrConfig;
try
{
connectionStrConfig = JsonConvert.DeserializeObject<ConnectionStrConfig>(configFile);//將讀取到的內(nèi)容轉(zhuǎn)成配置文件的對(duì)象
}
catch (Exception e)
{
Console.WriteLine("Josn 序列化失敗,檢查配置文件");//轉(zhuǎn)換失敗
Console.ReadKey();
return;
}
if (connectionStrConfig.Database == null)
{
Console.WriteLine("Josn 序列化失敗,檢查配置文件");//轉(zhuǎn)換失敗
return;
}
// 與數(shù)據(jù)庫(kù)連接的信息
MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder();
//用戶(hù)名
builder.UserID = connectionStrConfig.UserID;
//密碼
builder.Password = connectionStrConfig.Password;
//服務(wù)器地址
builder.Server = connectionStrConfig.Server;
//連接時(shí)的數(shù)據(jù)庫(kù)
builder.Database = connectionStrConfig.Database;
//設(shè)置端口號(hào)
builder.Port = connectionStrConfig.Port;
//定義與數(shù)據(jù)連接的鏈接
MySqlConnection connection = new MySqlConnection(builder.ConnectionString);
//打開(kāi)這個(gè)鏈接
connection.Open();
//connection.OpenAsync();
Console.WriteLine("這是一個(gè)控制臺(tái)程序");
Console.WriteLine("這是一個(gè)控制臺(tái)程序,數(shù)據(jù)庫(kù)連接完成");
Console.ReadKey();
connection.Close();//數(shù)據(jù)庫(kù)連接關(guān)閉
//connection.CloseAsync();
Console.WriteLine("數(shù)據(jù)庫(kù)連接斷開(kāi)");
Console.ReadKey();
}
/// <summary>
/// 創(chuàng)建默認(rèn)的連接字符串
/// </summary>
/// <returns>默認(rèn)的配置文件的string</returns>
static string CreateDefaultConnectionString()
{
string defaultString = "";//默認(rèn)連接字符串的配置文件
ConnectionStrConfig connectionStrConfig = new ConnectionStrConfig("root", "root", "localhost", "testdatabase", 3308);//通過(guò)”構(gòu)造函數(shù)“ 創(chuàng)建默認(rèn)的連接字符串的配置文件
defaultString = JsonConvert.SerializeObject(connectionStrConfig);//Json序列化為string
return defaultString;
}
}
[Serializable]
class ConnectionStrConfig
{
private string userid;
private string password;
private string server;
private string database;
private uint port;
/// <summary>
/// 用戶(hù)名
/// </summary>
public string UserID
{
get
{
return userid;
}
private set
{
userid = value;
}
}
/// <summary>
/// 密碼
/// </summary>
public string Password
{
get
{
return password;
}
private set
{
password = value;
}
}
/// <summary>
/// 服務(wù)地址
/// </summary>
public string Server
{
get
{
return server;
}
private set
{
server = value;
}
}
/// <summary>
/// 數(shù)據(jù)庫(kù)名稱(chēng)
/// </summary>
public string Database
{
get
{
return database;
}
private set
{
database = value;
}
}
/// <summary>
/// 端口號(hào)
/// </summary>
public uint Port
{
get
{
return port;
}
private set
{
port = value;
}
}
/// <summary>
/// 數(shù)據(jù)庫(kù)連接字符串的配置文件
/// </summary>
/// <param name="userid">用戶(hù)名</param>
/// <param name="password">密碼</param>
/// <param name="server">服務(wù)</param>
/// <param name="database">數(shù)據(jù)庫(kù)名稱(chēng)</param>
/// <param name="port">端口號(hào)</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()
//{
當(dāng)反序列化對(duì)象的時(shí)候,被反序列化的對(duì)象如果有g(shù)et或者set修飾的屬性,那么就不可以顯式的寫(xiě)無(wú)參的構(gòu)造函數(shù)。
//}
}
}
到了這里,關(guān)于C#控制臺(tái)連接Mysql數(shù)據(jù)庫(kù),有配置數(shù)據(jù)庫(kù)連接字符串的配置文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!