简介:

在这篇文章记录了在C sharp 编程中使用IniParse 对ini配置文件进行读写的操作.

读取ini文件中的Mysql数据库配置文件进行数据库连接:

如果你想从一个 .ini 文件中读取配置信息,可以使用第三方库,如 IniParser。以下是如何使用 IniParser 库来实现:

首先,你需要使用 NuGet 包管理器安装 IniParser。在 Visual Studio 中,可以通过 NuGet 包管理器控制台执行以下命令:
Install-Package IniParser
然后,创建一个 config.ini 文件,并添加以下内容:

[Database]
Server=your_server
User=your_user
Password=your_password
Database=your_database

接着,修改你的 mysqldata 类如下:

using System;
using IniParser;
using IniParser.Model;
using MySql.Data.MySqlClient;
using Sunny.UI;

namespace ExpressManageSystem
{
    internal class mysqldata
    {
        private static readonly string configFile = "config.ini";
        private static readonly FileIniDataParser parser = new FileIniDataParser();
        private static readonly IniData configData = parser.ReadFile(configFile);

        public static string connection_string
        {
            get
            {
                var databaseSection = configData["Database"];
                return $"server={databaseSection["Server"]};user={databaseSection["User"]};password={databaseSection["Password"]};database={databaseSection["Database"]}";
            }
        }

        public MySqlConnection mySqlConnection = new MySqlConnection(connection_string);

        //连接数据库
        public bool connect_db()
        {
            try
            {
                mySqlConnection.Open();
                return true;
            }
            catch (Exception ex)
            {
                UIMessageBox.Show(ex.Message);
                return false;
            }
        }

        //关闭数据库链接
        public bool close_db()
        {
            try
            {
                mySqlConnection.Close();
                return true;
            }
            catch (Exception ex)
            {
                UIMessageBox.Show(ex.Message);
                return false;
            }
        }
    }
}

在这个修改后的代码中,使用了 IniParser 库来读取 config.ini 文件中的配置信息。这样,你就可以通过修改 config.ini 文件来更改数据库连接信息,而无需修改代码。

读取ini文件中的信息保存到变量中:

请参考示例代码

private void CopyExpressInfo()
        {
            try
            {
                if (datagridview_main_information.SelectedRows.Count == 0)
                {
                    MessageBox.Show("请先选择客户");
                    return;
                }
                // 获取选中的行
                DataGridViewRow selectedRow = datagridview_main_information.SelectedRows[0];

                // 获取选中行的数据
                string customercode = selectedRow.Cells["customercode"].Value.ToString();
                //所需要复制的内容
                var configFile = "config.ini"; //定义ini配置文件名称
                var parser = new FileIniDataParser();
                IniData configData = null;

                if (File.Exists(configFile))
                {
                    configData = parser.ReadFile(configFile);

                    //读取CompanyInfo 部分的信息
                    var companyInfoSection = configData["CompanyInfo"];

                    string receiverAir = companyInfoSection["Receiver_air"];
                    string addressAir = companyInfoSection["Address_air"].ToString();
                    string phoneNumberAir = companyInfoSection["Phonenumber_air"];
                    string receiverSea = companyInfoSection["Receiver_sea"];
                    string addressSea = companyInfoSection["Address_sea"].ToString();
                    string phoneNumberSea = companyInfoSection["Phonenumber_sea"];

                    string cnShippinginfo = $"收件人:{receiverAir}\r\n收货地址:{addressAir}({customercode})+空运部\r\n手机号:{phoneNumberAir}     \n" +
                           $" \r\n收件人:{receiverSea} \r\n收货地址:{addressSea}({customercode})+海运部 \r\n手机号:{phoneNumberSea}";
                    //保存到粘贴板
                    Clipboard.SetText(cnShippinginfo);

                    MessageBox.Show($"已成功复制地址信息到剪贴板。");
                }
                else
                {
                    MessageBox.Show("配置文件 config.ini 不存在,系统正在为你重新创建!");
                    configData = new IniData();
                    MessageBox.Show("创建config.ini 成功,请在软件根目录填写相关信息!");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show($"Error: {ex.Message}");
            }

        }