saptechnique

Better late than never. - 郭富

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
    以前我在处理程序的配置文件时,基本上都是读取文本文件。这样做的结果是文本文件的格式和内容不好确定,因为文本文件格式比较随意,结果配置的更改非常的麻烦。
    现在是XML盛行的时代,我想好多人早已用XML文档做为配置数据的载体了,而我是刚刚才掌握而已。现在写一点示例代码,希望对新朋友有所帮助。
    这样操作的原理是使用FileStream和Dataset。将XML文件中读取到的字符串做为参数传递给Dataset,而形成一个Dataset数据集,我们再从数据集中读取数据。这对于习惯于操作数据库的朋友来说可能更为方便一些。但相信有很多朋友会选择直接读取XML文件中的XmlNodes,希望这些朋友看到时能给我回复一个更好的代码。谢谢。
以下就是全部的代码:
 1        private void btnReadXML_Click(object sender, EventArgs e)
 2        {
 3            DataSet myDS = new DataSet();
 4            string xmlData;
 5            StringBuilder sb = new StringBuilder();
 6
 7            string fileName;
 8            fileName = @"C:\Documents and Settings\guof\Desktop\Configure.xml";
 9
10            try
11            {
12                FileStream fs = new FileStream(fileName, FileMode.Open);
13                StreamReader sr = new StreamReader(fs);
14
15                string strLine = "";
16                strLine = sr.ReadLine();
17                sb.Append(strLine);
18                while (!sr.EndOfStream)
19                {
20                    strLine = sr.ReadLine();
21                    sb.Append(strLine);
22                }

23
24                sr.Close();
25                fs.Close();
26
27                xmlData = sb.ToString();
28
29                StringReader xmlSR = new StringReader(xmlData);
30
31                myDS.ReadXml(xmlSR, XmlReadMode.InferSchema);
32                xmlSR.Close();
33                dgvXmlDS.DataSource = myDS.Tables[0];
34            }

35            catch (Exception ex)
36            {
37                MessageBox.Show(ex.Message);
38            }

39        }

以下是相关的XML文件内容:
1<TSDS>
2  <ConfigureStrings>
3    <Server>sapf</Server>
4    <DBUser>sa</DBUser>
5    <DBPassword>sa</DBPassword>
6  </ConfigureStrings>
7</TSDS>
    由于仅是测试的代码,因此没有完整地遵循Try Catch结构,实际应用时还需要调整。
    这段代码并不是高效地代码,希望朋友们帮我指正和回复更好的代码。
posted on 2007-12-14 16:18  guofu  阅读(873)  评论(1编辑  收藏  举报