无法从XML获取两个连接字符串(web.config)

时间:2010-05-26 11:19:03

标签: c# .net xml

            XmlTextReader reader = new XmlTextReader(Window1.cfg.FSAddress);
            bool[] startreading = {false , false};
            while (reader.Read())
            {
                switch (reader.NodeType)
                {
                    case XmlNodeType.Element:    // Узел является элементом.
                        if (startreading[0])
                        {
                            if (reader.Name == "add")
                                if (startreading[1])
                                {
                                    id2.Text = reader.GetAttribute(1);
                                    return;
                                }
                                else
                                {
                                    id1.Text = reader.GetAttribute(1);
                                    startreading[1] = true;
                                    startreading[0] = false;
                                }
                        }
                        else
                        if (reader.Name == "connectionStrings")
                            startreading[0] = true;
                        break;
                    case XmlNodeType.EndElement:
                        if (startreading[1])
                            if (reader.Name == "add")
                                startreading[0] = true;
                        break;
                }
            }

我先拿一个但是...然后发生了一些奇怪的事情,我错过了第二个

对不起我的英语。顺便说一句 - 我不是从网络项目中得到它。

4 个答案:

答案 0 :(得分:2)

您可以使用ConfigurationManager.ConnectionStringsweb.config文件的连接字符串部分读取连接字符串。

或者您可以使用ConfigurationManager.GetSection从配置文件中获取一个部分。如果它是预定义的部分,您可以将其强制转换为此类型,或者您可以实现自己的自定义部分(有关示例,请参阅System.Configuration.ConfigurationSection)。

哦,是的......你必须将System.Configuration包含在你的引用中才能使用这些类。

答案 1 :(得分:2)

为什么要使用基于SAX的方法来读取配置文件?这些通常可以忽略不计,因此将整个文档加载到XmlDocument然后使用XPath遍历它将是一个更好的解决方案。

答案 2 :(得分:1)

为什么要这么努力?

使用此:     ConfigurationManager.ConnectionStrings

这是ConnectionStrings的集合

使用ConfigurationManager.ConnectionStrings['nameOfTheConnectionString'].ConnectionString()访问字符串本身。

ConfigurationManager位于System.Configuration命名空间

答案 3 :(得分:1)

我不知道你要做什么。但也许XPath比SAX容易得多。