作者:fx_blog(CSDN)
日期:2005-5-22
标题:威人留言录(v1.8)
注意:转贴一定注明作者及出处
'***************这一部分我们来完成修改与删除留言功能**************************
'******************************开始*******************************************
'我们还要再新建一个窗体
'这两个功能(删除与修改)都是在这个窗体上完成的
'界面如下:
'***********************完成删除功能**************************************888
'先回到留言主界面
'双击"删除留言"
'写入以下代码
Dim removeform As New form4
'以下这句是窗体间值传递的代码
removeform.TextBox2.Text = Me.TextBox1.Text
removeform.Show()
' 注意必需先完成都form4上各控件(窗体上的控件要先拉好)
'在最上面写入命名空间:
Imports WindowsApplication2.Form1
Imports System.Xml
Imports System.Xml.XPath
Imports System.Text
Imports System.IO
'新建一个窗体不用我来讲了吧
'前两篇已有讲过了(两次)
'好了,现在打开form4窗体
'双击"删除"按钮
'写入以下的代码
'这些代码如果有不懂的讲留言.
'基本的想法就是用XPath路径语言,根据留言主界体的Textbox1.Text(就是登陆框里的那个用户名)
'根据这个用户名来定位到这个用户的所有的留言,再根据文本框里的内容(标题)(所以上次说标题不能一样在这边就有得用了)来定位到具体的留言语,然后删除它.
' 输入以下代码:
If TextBox1.Text = "" Then
MessageBox.Show("请输入要删除的内容")
Exit Sub
End If
Dim doc As New XmlDocument
doc.Load("info.xml")
Dim firstChild As XmlNodeList
firstChild = doc.SelectNodes("/userinfo/users[userid='" & TextBox2.Text & "']/userliuyuaninfo")
Try
Dim delNodes As XmlNode
For Each delNodes In firstChild
Dim delNodesTrue As XmlNode
delNodesTrue = delNodes.SelectSingleNode("//userliuyuaninfo[userliuyuan[@liuyuanpiaoti='" & TextBox1.Text & "']]")
'TextBox3.Text = delNodesTrue.InnerText
doc.SelectSingleNode("/userinfo/users[userid='" & TextBox2.Text & "']").RemoveChild(delNodesTrue)
doc.Save("info.xml")
MessageBox.Show("删除成功")
Exit Sub
Next
Catch ex As Exception
MessageBox.Show("删除失败,或标题书写错误,或用户名错误" + ex.Message)
End Try
'*********************删除留言功能结束*******************************************
'*********************再来完成修改功能****************************************
'我们再回到留言主界面
'双击"修改留言"按钮
'输入以代码:
Dim updateform As New form4
updateform.TextBox2.Text = Me.TextBox1.Text
updateform.Show()
'好了,再回到Form4....
'双击Form4窗体上的没有控件的地方
' 进入Form4_Load(...)
写入以下的代码:
Dim doc As New XmlDocument
doc.Load("info.xml")
Dim piaotitocombobox As XmlNodeList
piaotitocombobox = doc.SelectNodes("/userinfo/users[userid='" & TextBox2.Text & "']/userliuyuaninfo/userliuyuan/@liuyuanpiaoti")
Dim insertPiaoti As XmlNode
For Each insertPiaoti In piaotitocombobox
ComboBox1.Items.Add(insertPiaoti.InnerText)
Next
(1)我们一样,也是根据留言主界面上传过来 用户名 来把这个用户名的所有留言的标题加载到combobox1里面去.
(2)这个combobox的第一项是我们自己写的
'再来双击combobox 这个按钮
通过以下的代码:
If ComboBox1.SelectedIndex <= 0 Then
MessageBox.Show("请选择一个标题")
Exit Sub
End If
Dim doc As New XmlDocument
doc.Load("info.xml")
'Dim getUser As XmlNodeList
'getUser = doc.GetElementsByTagName("userliuyuan")
Dim getResult As XmlNodeList
getResult = doc.SelectNodes("/userinfo/users[userid='" & TextBox2.Text & "']/userliuyuaninfo/userliuyuan")
Dim showliuyuan As XmlNode
For Each showliuyuan In getResult
TextBox3.Text = showliuyuan.SelectSingleNode("//userliuyuan[@liuyuanpiaoti='" & ComboBox1.SelectedItem & "']").InnerText
Next
'(1)我们要实现,在combobox1上选择一个标题,就自动在多行文本框里显示这个标题的内容.
'好了我们来完成这个修改留言这个功能
'修改的留言是用户在combobox上选择的.
'双击"修改"按钮
'写入以下的代码
If ComboBox1.SelectedIndex <= 0 Then
MessageBox.Show("请选择标题")
Exit Sub
End If
If TextBox3.Text = "" Then
MessageBox.Show("修改内容不能为空")
Exit Sub
End If
Dim doc As New XmlDocument
doc.Load("info.xml")
Try
Dim getUser As XmlNode
getUser = doc.SelectSingleNode("/userinfo/users[userid='" & TextBox2.Text & "']")
Dim toUpdateNode As XmlNodeList
toUpdateNode = getUser.SelectNodes("//userliuyuaninfo/userliuyuan[@liuyuanpiaoti='" & ComboBox1.SelectedItem & "']")
Dim selectNode As XmlNode
For Each selectNode In toUpdateNode
selectNode.InnerText = TextBox3.Text
doc.Save("info.xml")
MessageBox.Show("修改成功")
Exit Sub
Next
Catch ex As Exception
MessageBox.Show("修改失败:" & ex.Message)
End Try
(1)如何实现不用我来讲了,我在上面已经讲得很清了.
'*********************************修改功能结束*******************************************88
'好了,这次就写这么多,大家看看,有不懂的请留言.