现在的位置: 首页 > 综合 > 正文

用XML写的留言录(vb.net)(三)

2018年02月06日 ⁄ 综合 ⁄ 共 4174字 ⁄ 字号 评论关闭

作者: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

'好了,这次就写这么多,大家看看,有不懂的请留言.

抱歉!评论已关闭.