C#为何读不出ini文件的值?
foxd 2010-05-11 10:51:12 用vs 2005 c# 开发winform程序。
以下是代码片段:
using System.Runtime.InteropServices;
class DBClass
{
public class OperateIniFile
{
#region API函数声明
[DllImport("kernel32")]//返回0表示失败,非0为成功
private static extern long WritePrivateProfileString(string section,string key,
string val,string filePath);
[DllImport("kernel32")]//返回取得字符串缓冲区的长度
private static extern long GetPrivateProfileString(string section,string key,
string def,StringBuilder retVal,int size,string filePath);
#endregion
#region 读Ini文件
public static string ReadIniData(string Section,string Key,string NoText,string iniFilePath)
{
if(File.Exists(iniFilePath))
{
StringBuilder temp = new StringBuilder(1024);
GetPrivateProfileString(Section,Key,NoText,temp,1024,iniFilePath);
return temp.ToString(); //在这里设断点,运行后发现temp的值为空
}
else
{
return String.Empty;
}
}
#endregion
}
#region 建立数据库连接
/// <summary>
/// 建立数据库连接.
/// </summary>
/// <returns>返回SqlConnection对象</returns>
public SqlConnection getcon()
{
Weighing.BaseClass.DBClass.OperateIniFile inif = new Weighing.BaseClass.DBClass.OperateIniFile();
string server = DBClass.OperateIniFile.ReadIniData("Server", "Name", "(Local)", "Config.ini");
if (server.Length == 0)
{
MessageBox.Show("配置文件(Config.ini)缺失!");
Application.Exit();
}
//MSSQL
//string M_str_sqlcon = "Data Source=" + server + ";Database=db_Weighing;User id=sa;PWD=";
//GSQL
string M_str_sqlcon = "Data Source=" + server + ";Database=db_Weighing;User id=sa;PWD=admin";
SqlConnection myCon = new SqlConnection(M_str_sqlcon);
return myCon;
}
#endregion
我的配置文件Config.ini放在当前项目的bin\debug下面,其内容为:
; 服务器名填在等号右边
[Server]
Name=YSFRI-DVUBVSWDB\\GSQL
运行后发现,无论Config.ini中的Name的值是什么,字符串server的值总是为(Local),说明取不出值来,Why? 请教各位!