<configuration>
  <configSections>
    <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" />
  </configSections>
  <dataConfiguration defaultDatabase="NetVersion" />
  <connectionStrings>
    <add name="NetVersion" connectionString="Data Source=GJSERVER;Initial Catalog=XRSOFT;Persist Security Info=True;User ID=sa;Password=shoes;"
      providerName="System.Data.SqlClient" />
    <add name="SingleMachine" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\XRSOFT.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;"
      providerName="System.Data.SqlClient" />
  </connectionStrings>如下面所述的配置文件,我如果查找name="NetVersion"的 connectionString值,能不能直接通过xpath查询到,而且不用循环结点?如果能怎样写?

解决方案 »

  1.   

    可以
    configuration/connectionStrings/add[@name=NetVersion]
      

  2.   

    XmlDocument document = new XmlDocument();
    document.Load(fileName);
    XPathNavigator navigator = this.document.CreateNavigator();
    string currentDataBase = "NetVersion"
    string xquery = @"/configuration/connectionStrings/add";
    XmlNodeList xnl = document.SelectNodes(xquery);
    if (xnl != null)
     {
             foreach (XmlNode xn in xnl)
             {
                if (xn.Attributes["name"].InnerText == currentDataBase)
                    {
                               查到后的处理
                    }
              }
    }
    不知道还有其他的办法没有
      

  3.   

    XmlDocument doc = new XmlDocument();
    XmlNode node = doc.SelectSingleNode("configuration/connectionStrings/add[@name='NetVersion']");
      

  4.   

    汗。。什么版本?
    2.0的我至少发过2次阿。。郁闷。大家应该先查下再请教哦~~~~至少我是这样    <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" />LZ了解了XML的这个模式会很帮助你理解这个东东上面这段是提供你下面dataConfiguration这个段的解析用的类。。
    Configuration config;
    config = ConfigurationManager.OpenExeConfiguration(strExeFilePath)
    请查看MSDN2005
    Configuration 类负责读取配置文件的。。
     ConnSection = config.GetSection("connectionStrings") as ConnectionStringsSection;
    可以指定选择的连接串段 
    ConnectionStringSettings ConnSettings=ConnSection.ConnectionStrings["ConnName"]
    抽取选择的节
    然后就可以了
    你自己查看下相应的关键字吧。。这个东西很是好用。。做项目经常使用。。
    建议LZ看下配置文件的相应技术。。
      

  5.   

    呵呵,是的企业库2.0加sql2005 express
      

  6.   

    connectionStrings有系统自带的解析类,所以在section 节中部用写
    而是置于machine.config文件中。。
      

  7.   

    不错。2.0我用着比1.1舒服不少。。前段时间看了3.0beta。汗。改动N大不过不错。。
      

  8.   

    你是vs2005IDE吧.
    ConnectionStringSettings setting = WebConfigurationManager.ConnectionStrings["NetVersion"];
    string s = setting.ConnectionString;
      

  9.   

    晕倒,刷新下就这么多回复了,呵呵
    更正下错误,我刚发的是asp2.0里面的读取方式,winform用mailebai的~
      

  10.   

    我用的是DAAB,连接字符串是由企业库自己解析的
      

  11.   

    企业库自己解析??
    ========================
       
     <section name="connectionStrings" type="System.Configuration.ConnectionStringsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" requirePermission="false" />就这个东西解析的。汗
    能解释下不??
      

  12.   

    楼上的用过企业库吗?
    type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" 
    应该是Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings这东西解析的
      

  13.   

    我前个模块主要就是开发ado的。当然用过。汗。
    System.Configuration.ConnectionStringsSection
    这个是你要的东西。明白???
      

  14.   

    MS给每个结提供解析类。。
    在section段中写出来就可以了。。你说的那个是负责解析dataConfiguration 这个段的。。
    针对这个配置文件我还作了个配置工具你发现有你上面那个connectionStrings段在section书写了吗?没有吧//?〉??
    是因为他被默认放置于machine中了倒塌