以前我在处理程序的配置文件时,基本上都是读取文本文件。这样做的结果是文本文件的格式和内容不好确定,因为文本文件格式比较随意,结果配置的更改非常的麻烦。
现在是XML盛行的时代,我想好多人早已用XML文档做为配置数据的载体了,而我是刚刚才掌握而已。现在写一点示例代码,希望对新朋友有所帮助。
这样操作的原理是使用FileStream和Dataset。将XML文件中读取到的字符串做为参数传递给Dataset,而形成一个Dataset数据集,我们再从数据集中读取数据。这对于习惯于操作数据库的朋友来说可能更为方便一些。但相信有很多朋友会选择直接读取XML文件中的XmlNodes,希望这些朋友看到时能给我回复一个更好的代码。谢谢。
以下就是全部的代码:
以下是相关的XML文件内容:
这段代码并不是高效地代码,希望朋友们帮我指正和回复更好的代码。
现在是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![](/Images/OutliningIndicators/InBlock.gif)
7
string fileName;
8
fileName = @"C:\Documents and Settings\guof\Desktop\Configure.xml";
9![](/Images/OutliningIndicators/InBlock.gif)
10
try
11
{
12
FileStream fs = new FileStream(fileName, FileMode.Open);
13
StreamReader sr = new StreamReader(fs);
14![](/Images/OutliningIndicators/InBlock.gif)
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![](/Images/OutliningIndicators/InBlock.gif)
24
sr.Close();
25
fs.Close();
26![](/Images/OutliningIndicators/InBlock.gif)
27
xmlData = sb.ToString();
28![](/Images/OutliningIndicators/InBlock.gif)
29
StringReader xmlSR = new StringReader(xmlData);
30![](/Images/OutliningIndicators/InBlock.gif)
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
}
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
3
![](/Images/OutliningIndicators/InBlock.gif)
4
![](/Images/OutliningIndicators/InBlock.gif)
5
![](/Images/OutliningIndicators/InBlock.gif)
6
![](/Images/OutliningIndicators/InBlock.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/InBlock.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/InBlock.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/InBlock.gif)
34
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
39
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
以下是相关的XML文件内容:
1
<TSDS>
2
<ConfigureStrings>
3
<Server>sapf</Server>
4
<DBUser>sa</DBUser>
5
<DBPassword>sa</DBPassword>
6
</ConfigureStrings>
7
</TSDS>
由于仅是测试的代码,因此没有完整地遵循Try Catch结构,实际应用时还需要调整。![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
这段代码并不是高效地代码,希望朋友们帮我指正和回复更好的代码。