在C sharp中使用IniParser对ini配置文件进行读写操作
简介:
在这篇文章记录了在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}");
}
}