修改配置文件必须重新启动程序才有效,没有配置文件System.Configuration.ConfigurationSettings.AppSetting["DBConStr"].ToString();
也可以执行,不会返回异常,但取不出值。

解决方案 »

  1.   

    其实有二个app.config 的。一个在源代码目录。另一个在//bin/obj/目录中,//bin/obj/目录中的那个才是你程序运行时从源代码目录拷过去的。等程序完了。系统又把//bin/obj/目录的那个拷回源代码目录.你看一下。
      

  2.   

    to:大象
    web程序的web.config是不是也一样
    我第一次读完后,删除文件,也能得到DBConStr的值,
    并且也能得到Server的值,
    xml文件如下:
    <add key="DBConStr" value="workstation id=WFW;packet size=4096;user id=sa;password=centaurus;data source=twmis;persist security info=False;initial catalog=hisDemo;connect timeout=30;Pooling=true" />
        <add key="Server" value="WFW" />
      

  3.   

    如果程序已重启过,那就按aquahalo(蛐蛐)说的试一下
      

  4.   

    aquahalo(蛐蛐):
    在winForm下,System.Configuration.ConfigurationSettings.AppSetting["DBConStr"].ToString();
    读的是exe目录的*.exe.config文件
      

  5.   

    是的。我写错了。是*.exe.config这个文件。就是说如果你要改写的话就要改写这个文件。
      

  6.   

    我测了一下,是一次读到内存了,
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <appSettings>
    <add key="name" value="1" />
    </appSettings>
    </configuration>namespace ZZConsoleTest
    {

    public class ZZConsole
    {
    [STAThread]
    static void Main(string[] args)
    {
    Console.ReadLine();
    for(int i=0;i<20;i++)
    {
    Console.WriteLine(ConfigurationSettings.AppSettings["name"]);
    Thread.Sleep(5000);
    }
    Console.ReadLine();
    }
    }
    }
    我在程序运行中间把ZZConsoleTest.exe.config文件中的1改成了2 ,输出的还是1.