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

原创 2005年05月22日 02:23:00

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

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

相关文章推荐

VB.net学习笔记(二十一)XML流的读写

System.Xml名称空间支持XML的处理,为了生成和浏览XML文档,使用两种访问方式: 一、读写方式     (一)基于流的方式     特点:速度快,可连续读写,缺点不能作为节点、元素等进...

VB.net读写XML文件源代码

  • 2011年12月31日 11:26
  • 103KB
  • 下载

asp.net xml留言本源码

  • 2009年11月23日 19:51
  • 20KB
  • 下载

VB.NET 读取写入XML文件

Public Class CSysXML Dim mXmlDoc As New System.Xml.XmlDocument Public XmlFile As String ...

vb.net中xml操作实例

记录一下开发过程中进行的一次XML操作实例,实现如下效果: 把winform中的一个DataGridView控件绑定的dataset对象转换成xml格式的字符串该winform中还包含了多个tex...
  • lpwmm
  • lpwmm
  • 2016年03月06日 00:13
  • 414

简单留言xml转化xsl表现 .net

  • 2010年08月07日 22:20
  • 7KB
  • 下载

一个以ASP.NET+XML编写的留言本

  • 2002年12月15日 00:00
  • 114KB
  • 下载

VB.NET反序列化XML

序列化,是将对象状态转换为可保持或传输的格式的过程。 与序列化相反的是反序列化,它将流转换为对象。这两个过程结合起来,就可以存储和传输数据。这就是序列化的意义所在。 在VB.NET中转换、处理和生...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用XML写的留言录(vb.net)(三)
举报原因:
原因补充:

(最多只允许输入30个字)