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

原创 2005年05月22日 01:45:00

作者:fx_blog(CSDN)

日期:2005-5-22

标题:威人留言录(v1.8)

注意:转贴一定注明作者及出处

'******************************************开始********************************

'接下来我们来完另处部分的功能

'***********************删除用户*********************************88

'这个删除用户只能由admin 来完成

'代码如下:

'双击“删除用户”按钮

'写入以下代码:

Me.Text = "留言主界面-管理员删除用户"

        If TextBox3.Text = "" Then
            MessageBox.Show("请输入要删除的用户!!!")
            Exit Sub
        End If
        If TextBox1.Text <> "admin" Then
            MessageBox.Show("对不起,你不是管理员,无法删除!")
            Exit Sub
        End If

        Dim doc As XmlDocument = New XmlDocument
        doc.Load("info.xml")
        Dim getUser As XmlNodeList = doc.GetElementsByTagName("userid")
        Dim i As Integer
        For i = 0 To getUser.Count - 1
            While TextBox3.Text = getUser(i).InnerText
               Dim useradmin As XmlElement
        Dim root As XmlElement = doc.DocumentElement
        Try
            Dim removeUser As XmlElement
            removeUser = doc.SelectSingleNode("/userinfo/users[userid='" & TextBox3.Text & "']")
            doc.SelectSingleNode("/userinfo").RemoveChild(removeUser)
            doc.Save("info.xml")
                    MessageBox.Show("删除成功")
                    Exit Sub
        Catch ex As Exception
            MessageBox.Show(ex.Message)
                End Try
            End While
        Next
        MessageBox.Show("用户名不存在,请确认输入正确")
        Exit Sub

'********************************删除用户功能结束************************************

'*******************************接下来完成留言功能********************************

(1)首先要注意不能让标题一样,这在我们以后的删除和修改留言是有用的

(2)我们建立了两个属性liuyuanpiaoti,id

所以我们的代码如下:

'双击“提交”按钮

'写入以下代码:

Me.Text = "留言主界面-用户留言"

        If TextBox5.Text = "" Then
            MessageBox.Show("标题不能空")
            Exit Sub
        End If
        Dim doc As New XmlDocument
        doc.Load("info.xml")
        Dim checkpiaoti As XmlNodeList
        checkpiaoti = doc.SelectNodes("//userliuyuan/@liuyuanpiaoti")
        Dim checktrue As XmlNode
        For Each checktrue In checkpiaoti
            While TextBox5.Text = checktrue.InnerText
                MessageBox.Show("标题已经存在,请选择其他标题")
                Exit Sub
            End While
        Next

        If ComboBox1.SelectedIndex >= 0 And TextBox4.Text <> "" Then
            Try
                Dim userid As XmlNode
                Dim root As XmlNode = doc.DocumentElement
                Dim users As XmlElement = doc.CreateElement("users")
                users = doc.SelectSingleNode("/userinfo/users[userid='" & TextBox1.Text & "']")
                Dim userliuyuaninfo As XmlElement = doc.CreateElement("userliuyuaninfo")
                Dim userxinqing As XmlElement = doc.CreateElement("userxinqing")
                userxinqing.InnerText = ComboBox1.SelectedItem
                userliuyuaninfo.AppendChild(userxinqing)

                Dim userliuyuan As XmlElement = doc.CreateElement("userliuyuan")
                userliuyuan.InnerText = TextBox4.Text
                Dim liuyuanid As XmlAttribute = doc.CreateAttribute("id")
                Dim idNum As XmlNodeList
                idNum = doc.SelectNodes("/userinfo/users[userid='" & TextBox1.Text & "']/userliuyuaninfo")
                Dim i As Integer
                i = idNum.Count - 1
                liuyuanid.Value = i + 1
                userliuyuan.SetAttributeNode(liuyuanid)
                Dim liuyuanpiaoti As XmlAttribute = doc.CreateAttribute("liuyuanpiaoti")
                liuyuanpiaoti.Value = TextBox5.Text
                userliuyuan.SetAttributeNode(liuyuanpiaoti)

                userliuyuaninfo.AppendChild(userliuyuan)

                users.AppendChild(userliuyuaninfo)

                root.AppendChild(users)
                doc.Save("info.xml")
                MessageBox.Show("留言成功")
                Exit Sub

            Catch ex As Exception
                MessageBox.Show(ex.Message + "用户名不存在")
            End Try
        Else
            MessageBox.Show("请输入完整")
            Exit Sub
        End If

(3)这是我们在注册完情况下才能写入的,我们注册完成后,把信息保存在"info.xml"下

(4)用这句:idNum = doc.SelectNodes("/userinfo/users[userid='" & TextBox1.Text & "']/userliuyuaninfo")

把自己留言的留言语保存在自己的那个Users节点下,完全无数据库

'******************************留言功能结束**************************************************

'******************************** 再来写显示自己的留言***********************************

'(1)把自己的留言显示在多行文件框内..

'代码如下:

'双击"查看留言"按钮

'写入以下的代码:

Me.Text = "留言主界面-显示你的留言"
        TextBox4.Text = ""
        Dim doc As New XmlDocument
        doc.Load("info.xml")
        Dim root As XmlElement = doc.DocumentElement
        Dim showyourown As XmlNodeList
        Try
            showyourown = root.SelectNodes("/userinfo/users[userid='" & TextBox1.Text & "']")
            Dim myownliuyuan As XmlNodeList
            myownliuyuan = doc.SelectNodes("/userinfo/users[userid='" & TextBox1.Text & "']/userliuyuaninfo/userliuyuan")
            Dim showresult As XmlNode
            TextBox4.Text += "你的留言!" & vbCrLf & vbCrLf
            For Each showresult In myownliuyuan

                TextBox4.Text += showresult.InnerText & vbCrLf
                TextBox4.Text += "=====================" & vbCrLf
            Next
        Catch ex As Exception
            MessageBox.Show("用户名不存在")
        End Try

'******************************显示留言的功能结束*************************************

'**************************这个窗体上的其他小按钮的代码*******************8

'最上面的"重填"按钮

      TextBox1.Text = ""
        TextBox2.Text = ""

'第三部分的"重设"按钮

    TextBox4.Text = ""
        TextBox5.Text = ""

'“关闭”按钮

Me.Close()

'**********************************************现在我们来完成***********************************88

'****************************************显示所有留言的功能*************************************8888

'**************************************开始*************************************

'首先我们来建立一个窗口

'单击窗体上的菜单栏--项目--添加新项--

(1)左边---本地项目项

(2)右边---Windows窗体

(3)打开(Form3)

'双击蓝色部分Panel上的“查看全部”按钮

'写入以下代码

        Dim showform As New Form3
        showform.Show()

'用来显示我们要看留言的窗口

'好了,让我们打开Form3 窗体

'界面如下:

 '在窗体上拉入一个多行的文件框:

然后双击窗体(不在Textbox上)进入Form3_Load(...)

'首先在最上面写入命名空间

Imports System.Xml
Imports System.Xml.XPath
Imports System.Text
Imports System.IO

写入以下的代码

(1)这里我们用循环来看出所有用户,再以每一个用户来显示出每位用户的所有留言

Dim doc As New XmlDocument
        doc.Load("info.xml")

        Dim listuser As XmlNodeList
        listuser = doc.GetElementsByTagName("userid")

        Dim listliuyuan As XmlNodeList

        'Dim i, j As Integer
        'For i = 0 To listuser.Count - 1
        'Label1.Text += "姓名:" & listuser(i).InnerText & vbCrLf
        'Next
        'For j = 0 To listliuyuan.Count - 1
        'Label1.Text += "留言语: " & listliuyuan(j).InnerText & vbCrLf
        'Next
        Dim i As Integer
        For i = 0 To listuser.Count - 1
            TextBox1.Text += "用户名: " & listuser(i).InnerText & vbCrLf
            listliuyuan = doc.SelectNodes("userinfo/users[userid='" & listuser(i).InnerText & "']/userliuyuaninfo/userliuyuan")
            Dim liuyuanresult As XmlNode
            For Each liuyuanresult In listliuyuan
                TextBox1.Text += "留言语: " & liuyuanresult.InnerText & vbCrLf

                TextBox1.BackColor = Color.SandyBrown
            Next
            TextBox1.Text += "======================" & vbCrLf
        Next

'关闭按扭不用我来写了

'*******************************显示所有留言结束******************************888

'好了就写这些了,这是第二部分.

'大家先看看..

'有问题给我留言....

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

序列化,是将对象状态转换为可保持或传输的格式的过程。 与序列化相反的是反序列化,它将流转换为对象。这两个过程结合起来,就可以存储和传输数据。这就是序列化的意义所在。 在VB.NET中转换、处理和生...

VB.NET 读取写入XML文件

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

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

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

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

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

vb.net中xml操作实例

记录一下开发过程中进行的一次XML操作实例,实现如下效果: 把winform中的一个DataGridView控件绑定的dataset对象转换成xml格式的字符串该winform中还包含了多个tex...
  • lpwmm
  • lpwmm
  • 2016年03月06日 00:13
  • 413
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用XML写的留言录(vb.net)(二)
举报原因:
原因补充:

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