读ini文件问题-仅仅是读,写可以的----急
调用api函数 类中代码如下:
private static extern string GetPrivateProfileString(
string lpAppName,
string lpKeyName,
string lpDefault,
StringBuilder lpReturnedString,
int nSize,
string lpFileName
);
public string ReadDBini(string Section, string Key, string def)
{
StringBuilder temp = new StringBuilder(1024);
GetPrivateProfileString(Section, Key, def,temp,1024,filePath);
//此处发生错误,如下:
异常详细信息: System.AccessViolationException:
尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
return temp.ToString();
}
在page_load中调用ReadDBini代码如下:
WRini DBSet=new WRini();
protected void Page_Load(object sender, EventArgs e)
{
int iSvr, iDB, iUser, iPwd;
//string temp;
txtServer.Text = DBSet.ReadDBini( "数据库设置 ", "Server ", " ");
txtDB.Text = DBSet.ReadDBini( "数据库设置 ", "Database ", " ");
txtUser.Text = DBSet.ReadDBini( "数据库设置 ", "User ", " ");
txtPwd.Text = DBSet.ReadDBini( "数据库设置 ", "Password ", " ");
}
------解决方案--------------------听朋友说web.config里面不可以使用变量。程序一旦写完后,如果要改数据库代码也得重新编译,改源代码,比较麻烦。所以就采用这个方法了。
希望能求得一些帮助!
------------------------------------------
不要听人说,看看书或试一下或看帮助,就知道他说的不对。web.config本来就是为配置准备的,怎么还要改源码和编译。
像连接字符串:
<connectionStrings>
<add name= "DbTempConnectionString " connectionString= "Data Source=localhost;Initial Catalog=DbTemp;Integrated