If CheckFileExistence()
Then LoadDataSet() Else ’如果两个xml文件不存在,则创建这两个xml文件 CreateXMLFile() End
If 接着,定义一系列的变量,以存放两个xml文件的具体位置,如下代码:
Dim myDocumentsFolder As String =
My.Computer.FileSystem.SpecialDirectories.MyDocuments
Dim
activitiesFileName As String = "\Activities.xml" Dim tasksFileName As
String = "\Tasks.xml" Public activitiesFile As String =
String.Concat(myDocumentsFolder, activitiesFileName) Public tasksFile
As String = String.Concat(myDocumentsFolder,
tasksFileName) 注意其中一个用法My.Computer.FileSystem.SpecialDirectories.MyDocuments返回当前计算机上"我的文档"的具体位置。这里,将两个文件保存到"我的文档"中去。并且用activitiesFile和tasksFile变量,保存两个xml文件实际存取的路径。接下来是相关几个过程的代码,如下所示
Public Function CheckFileExistence() As
Boolean ’检查两个xml文件是否存在 If
My.Computer.FileSystem.FileExists(activitiesFile) And
_ My.Computer.FileSystem.FileExists(tasksFile) Then Return
True Else Return False End If End
Function
Public Sub
CreateXMLFile() DsActivitiesTasks.Tasks.AddTasksRow("Email") DsActivitiesTasks.Tasks.AddTasksRow("Browsing") DsActivitiesTasks.Tasks.WriteXml(tasksFile,
System.Data.XmlWriteMode.WriteSchema) DsActivitiesTasks.activities.WriteXml(activitiesFile,
System.Data.XmlWriteMode.WriteSchema) End
Sub 上面的createxmlfile过程,首先前两句代码往task的xml文件中增加一些样本数据,分别为email和browsing.接着的两句代码,是.net
2.0中新增加的功能,设置了一个重要的参数writeSchema,以便自动将数据保存到tasksfile和activitiesfile两个文件中,并且自动将xml
的schema模式保存起来,只有这样才能将两个文件之间的在数据表上对应的关系保存起来。
Public Sub
LoadDataSet() DsActivitiesTasks.tasks.ReadXml(tasksFile) DsActivitiesTasks.activities.ReadXml(activitiesFile) End
Sub 上面是loaddataset过程,十分简单,分别读取两个xml文件。可以看到,在.net
2.0中,可以同时在一个dataset里加载多个xml文件,如上述所示。而在.net
1.1中,这是很难做到的。
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) _ Handles
btnSave.Click Me.DsActivitiesTasks.activities.AcceptChanges() Me.DsActivitiesTasks.activities.WriteXml(activitiesFile,
System.Data.XmlWriteMode.WriteSchema) End Sub
Private Sub
btnDelete_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) _ Handles
btnDelete.Click Me.DataGridView1.Rows.RemoveAt(Me.DataGridView1.CurrentRow.Index) btnSave_Click(sender,
e) End
Sub 增加和编辑任务
Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles
btnDelete.Click Me.DataGridView1.Rows.RemoveAt(Me.DataGridView1.CurrentRow.Index) btnSave_Click(sender,
e) End
Sub 最后,我们要记得,在frmActivities窗体的btnEditAddTasks按钮中,编写如下代码,以能够使用户点这个按钮时,可以弹出编辑任务task的窗口
Dim frmtasks As New
frmEditAddTasks frmtasks.ShowDialog() 运行代码