在使用C#与数据库进行连接的过程中感觉修改代码来改变连接字符串不甚方便,尤其是在可移植性方面很不好,总不能在让用户对代码进行编辑吧。所以搞一个配置文件就可以动态读取配置文件中的配置信息了,不用在对代码进行修改、重新编译。
ini配置文件
ini配置文件由许多section组成,每个section下又包含众多属性,例如
(有一点必须要重点强调一下:配置文件开始一定要空一个空行,不然无法读取成功!!!)
[db]
host=localhost
port=3306
user=xxx
password=xxx
dbname=xxx
在此,只说明最简单的读取配置文件,不涉及修改。
当然,最好还是封装成一个类
具体如下:
public class ReadConfig
{
private String path = null;
public ReadConfig(String path)
{
this.path = path;
}
#region 声明读写INI文件的API函数
[DllImport("kernel32")] // 相关的库文件
private static extern int GetPrivateProfileString(string section, string key, string defVal, StringBuilder retVal, int size, string filePath);
#endregion
public string IniReadValue(string section, string key)
{
StringBuilder temp = new StringBuilder(255);
int i = GetPrivateProfileString(section, key, "", temp, 255, this.path);
return temp.ToString();
}
}
在使用该类的时候建议使用系统函数动态获取当前程序的执行路径(我是把ini文件放在exe文件同目录下),不然可移植性方面比较差
string path = Directory.GetCurrentDirectory() + @"\sql.ini"; // 需要引用System.IO;
ReadConfig rc = new ReadConfig(path);
string server = rc.IniReadValue("db", "server");
string port = rc.IniReadValue("db", "port");
string user = rc.IniReadValue("db", "user");
string password = rc.IniReadValue("db", "password");
string database = rc.IniReadValue("db", "dbname");