国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C#控制臺(tái)連接Mysql數(shù)據(jù)庫(kù),有配置數(shù)據(jù)庫(kù)連接字符串的配置文件

這篇具有很好參考價(jià)值的文章主要介紹了C#控制臺(tái)連接Mysql數(shù)據(jù)庫(kù),有配置數(shù)據(jù)庫(kù)連接字符串的配置文件。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

C#控制臺(tái)連接Mysql數(shù)據(jù)庫(kù),有配置數(shù)據(jù)庫(kù)連接字符串的配置文件

實(shí)現(xiàn)功能

  1. 讀取..txt 中的配置文件,來(lái)初始化連接字符串
  2. 讓連接字符串的配置文件不存在會(huì)主動(dòng)創(chuàng)建默認(rèn)的連接字符串

注意點(diǎn):文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-689396.html

  1. 需要引用Newtonsoft
  2. 使用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)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【小白專(zhuān)用】C# 連接 MySQL 數(shù)據(jù)庫(kù)

    【小白專(zhuān)用】C# 連接 MySQL 數(shù)據(jù)庫(kù)

    C# – Mysql 數(shù)據(jù)庫(kù)連接 1. 配置環(huán)境 #前提:電腦已安裝Mysql服務(wù); Visual Studio 安裝Mysql依賴(lài)庫(kù): ?? ?工具 - NuGet 包管理器 - 管理解決方案的 NuGet程序包 — 搜索, 安裝Mysql.Data (Oracle); (安裝成功后,在項(xiàng)目引用里面可以看到 Mysql.Data) ? 接著安裝?System.Data.SqlClient 這樣就安裝完成

    2024年02月01日
    瀏覽(22)
  • Unity、C#連接MySQL數(shù)據(jù)庫(kù)

    Unity、C#連接MySQL數(shù)據(jù)庫(kù)

    (一)安裝完MySQL后,打開(kāi)Navicat進(jìn)行連接,連接名隨便輸入,本地的(此電腦上的)MySQL主機(jī)就為: localhost或者127.0.0.1 ,用戶(hù)名和密碼:如果是本地MySQL就為你安裝時(shí)設(shè)置的用戶(hù)名和密碼。 (二)(如果是本地MySQL)快速的創(chuàng)建如下表: ? (一)創(chuàng)建控制臺(tái)應(yīng)用 (二)項(xiàng)目

    2023年04月08日
    瀏覽(28)
  • 使用C#連接MySQL數(shù)據(jù)庫(kù)(詳解)

    使用C#連接MySQL數(shù)據(jù)庫(kù)(詳解)

    ?前言? 本片文章,主要在于C#連接MySQL數(shù)據(jù)庫(kù),由于這之間無(wú)法建立直接聯(lián)系,這時(shí)候就涉及到了第三方連接工具.NET,以此來(lái)建立C#與MySQL數(shù)據(jù)庫(kù)的連接 ??歡迎點(diǎn)贊 ?? 收藏 ?留言評(píng)論 ??私信必回喲?? ??博主將持續(xù)更新學(xué)習(xí)記錄收獲,友友們有任何問(wèn)題可以在評(píng)論區(qū)留

    2024年02月05日
    瀏覽(39)
  • C#控制臺(tái)應(yīng)用程序如何添加窗口關(guān)閉事件?

    C#控制臺(tái)應(yīng)用程序如何添加窗口關(guān)閉事件?

    公司有一個(gè)控制臺(tái)應(yīng)用程序,在關(guān)閉控制臺(tái)應(yīng)用程序窗口前,想處理一下業(yè)務(wù)邏輯。還有比如誤操作關(guān)閉了,或者像消息隊(duì)列啟動(dòng)了發(fā)送消息提醒,那關(guān)閉了窗口代表控制臺(tái)應(yīng)用銷(xiāo)毀了,也需要發(fā)送消息通知。那這個(gè)時(shí)候添加關(guān)閉窗口事件就派上用場(chǎng)了。 很多小伙伴問(wèn),有沒(méi)

    2024年02月13日
    瀏覽(27)
  • 淺析 C# 控制臺(tái)的 Ctrl+C 是怎么玩的

    淺析 C# 控制臺(tái)的 Ctrl+C 是怎么玩的

    上一篇我們聊到了 Console 為什么會(huì)卡死,讀過(guò)那篇文章的朋友相信對(duì) conhost.exe 有了一個(gè)大概的了解,這一篇更進(jìn)一步聊一聊窗口的特殊事件 Ctrl+C 底層流轉(zhuǎn)到底是什么樣的,為了方便講述,讓 chagtgpt 給我生成一段Ctrl+C 的業(yè)務(wù)代碼。 然后簡(jiǎn)單跑一下,確認(rèn)代碼沒(méi)毛病。 相信很

    2024年02月08日
    瀏覽(20)
  • 淺析 C# Console 控制臺(tái)為什么也會(huì)卡死

    淺析 C# Console 控制臺(tái)為什么也會(huì)卡死

    在分析旅程中,總會(huì)有幾例控制臺(tái)的意外卡死導(dǎo)致的生產(chǎn)事故,有經(jīng)驗(yàn)的朋友都知道,控制臺(tái)卡死一般是動(dòng)了 快速編輯窗口 的緣故,截圖如下: 雖然知道緣由,但一直沒(méi)有時(shí)間探究底層原理,市面上也沒(méi)有對(duì)這塊的底層原理介紹,昨天花了點(diǎn)時(shí)間簡(jiǎn)單探究了下,算是記錄分

    2024年02月08日
    瀏覽(85)
  • RabbitMQ登錄控制臺(tái)顯示--你與此網(wǎng)站的連接不是私密連接

    RabbitMQ登錄控制臺(tái)顯示--你與此網(wǎng)站的連接不是私密連接

    ???????? Note:? The default administrator username and password are? guest?and?guest. ?注:默認(rèn)管理員用戶(hù)名和密碼為 guest 和 guest ? ? ? ? 由于本人之前用過(guò),注冊(cè)過(guò)賬號(hào)密碼,在登錄時(shí),用戶(hù)名賬號(hào)有異常出現(xiàn)以下問(wèn)題 ? ? ? ? ?解決方案: 因?yàn)槲业膔abbitMQ是docker啟動(dòng)的 # 進(jìn)入容器 docker

    2024年02月01日
    瀏覽(26)
  • RabbitMQ 登錄控制臺(tái)出現(xiàn) “你與此網(wǎng)站的連接不是私密連接“
  • C#連接Mysql數(shù)據(jù)庫(kù)詳細(xì)教程(內(nèi)附Mysql及Navicat)

    C#連接Mysql數(shù)據(jù)庫(kù)詳細(xì)教程(內(nèi)附Mysql及Navicat)

    ????????課上教學(xué)使用的是SqlServer數(shù)據(jù)庫(kù),由于SqlServer數(shù)據(jù)庫(kù)配置難以理解,故學(xué)習(xí)使用Mysql代替數(shù)據(jù)庫(kù)連接。(Mysql以及Navicat安裝說(shuō)明在壓縮包內(nèi)) ? ? ? ? Mysql連接首先需要用到Mysql.Data.dll連接文件,也就是Mysql Connector Net這一文件,下載后安裝會(huì)自動(dòng)在C:Program Files (x8

    2024年02月14日
    瀏覽(27)
  • VS2022 和 VS2010 C#控制臺(tái)輸出 Hello World

    VS2022 和 VS2010 C#控制臺(tái)輸出 Hello World

    最后,一定將【 ? 】將解決方案和項(xiàng)目放在同一個(gè)目錄中(D)的對(duì)勾點(diǎn)上,如上圖。這個(gè)小習(xí)慣,對(duì)于以后程序的維護(hù)有好處。 Console.WriteLine(\\\"Hello World\\\"); ? 代碼輸入完成以后,可以通過(guò)以下3種方法來(lái)運(yùn)行。 1 、在菜單欄上選擇 “ 調(diào)試 ”-“ 開(kāi)始執(zhí)行(不調(diào)試) ” 命令。

    2024年02月06日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包