日期:2014-05-17  浏览次数:20941 次

类里面的变量值不更新,要重新启动程序才能更新变量值
各位大侠,请教一个问题,以下是问题描述:
在程序目录下有一个ini文件,用以存储数据库配置的参数。结构如下:

[DatabaseSetForF6]
serverForF6=
databaseForF6=
usernameForF6=
passwordForF6=

然后写了一个类,用以方便调用连接字符串,代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace F6
{
    class SQLForF6
    {
        static string Current = Directory.GetCurrentDirectory();
        static INI ini = new INI(Current + "/database.ini");//读取ini文件
        //从ini取数据库配置参数,并分别赋予变量
        static string serverForF6 = ini.ReadValue("DatabaseSetForF6", "serverForF6");
        static string databaseForF6 = ini.ReadValue("DatabaseSetForF6", "databaseForF6");
        static string usernameForF6 = ini.ReadValue("DatabaseSetForF6","usernameForF6");
        static string passwordForF6 = ini.ReadValue("DatabaseSetForF6", "passwordForF6");
        //对取出的数据库配置参数进行解密
        static string serverNotepad = Crypt.Decode(serverForF6);
        static  string databaseNotepad = Crypt.Decode(databaseForF6);
         static string usernameNotepad = Crypt.Decode(usernameForF6);
         static string passwordNotepad = Crypt.Decode(passwordForF6);
        //解密后,形成连接字符串
         public static string conStr = "server=" + serverNotepad + ";database=" + databaseNotepad + ";uid=" + usernameNotepad + ";pwd=" + passwordNotepad + ";Asynchronous Processing=True;";
    
    }
}


现本人完成一winform,winform上含两个菜单,分别为“数据库配置”,“用户管理”,其中,用户管理有用到类里的conStr作为连接字符串。
如今,我通过一个指定的账户密码成功登录到这个winform(注:此登录过程没用到数据库users表的值,用的是指定的账户密码)。然后打开“数据库配置”,完成配置,此时,发现ini文件各个参数已经更新,接着我点击“用户管理”菜单打开用户管理窗口,此刻数据库连接失败,本人怀疑类里面的conStr连接字符串各个参数根本就没更新成功,依然取的是ini在配置以前的历史参数。最后,我必须退出系统,并重新登陆,然后点击“用户管理”才能成功读取到数据库里面的值,才能让类的conStr取到ini文件的最新参数。

不知这样描述各位是否可以看清楚,请帮忙分析是哪里出了问题,谢谢。

------解决方案--------------------
遇见错误自己调试,别只在那“猜想”
------解决方案--------------------
你可以添加一个功能“刷新配置”
在里面添加代码:
SqlForF6.ini = new INI(Current + "/database.ini");
SqlForF6.serverForF6 = ini.ReadValue("DatabaseSetForF6", "serverForF6");
...
SqlForF6.conStr = "server=" + serverNotepad + ";da