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

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

作者:fx_blog(CSDN)

日期:2005-5-22

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

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

'**********************这一部分我们来完成用户注册信息修改的功能************************************

''我们还要再新建一个窗体

'窗体界面和注册界面是差不多的

'combobox要Enable属性设为false

界面如下:

'这里的检查是否是有同名的按钮,换成了combobox 控件,这个下拉菜单用来载入所有的用户名

'好了回到留言主窗体

'双击"修改注册信息"按钮

'输入以下的代码:

If TextBox1.Text <> "" And TextBox2.Text <> "" Then
            Dim doc As New XmlDocument
            doc.Load("info.xml")
            Try
                Dim root As XmlNode = doc.DocumentElement
                Dim listuser As XmlNodeList
                Dim listpass As XmlNodeList
                listuser = doc.GetElementsByTagName("userid")
                listpass = doc.GetElementsByTagName("Pass")
                Dim i, j As Integer
                For i = 0 To listuser.Count - 1
                    For j = 0 To listpass.Count - 1
                        While TextBox1.Text = listuser(i).InnerText And TextBox2.Text = listpass(i).InnerText
                            Panel3.Visible = True
                            Dim updateuserinfoform As New Form5
                            updateuserinfoform.TextBox1.Text = Me.TextBox1.Text
                            updateuserinfoform.Show()
                            MessageBox.Show("登陆成功")
                            TextBox2.Text = ""
                            Exit Try
                        End While

                    Next
                Next
                MessageBox.Show("密码或用户名错误!")
                Exit Sub
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        Else
            MessageBox.Show("请输入完整!")
        End If

'(1)大家可以发现这段代码和登陆代码差不多一样的,只是多了几句:

                             Dim updateuserinfoform As New Form5
                            updateuserinfoform.TextBox1.Text = Me.TextBox1.Text
                            updateuserinfoform.Show()

'建立一个新的窗体,各位自己建(Form5)

'好了,现在打开form5 窗体

'也一样要在最上面导入命名空间

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

'好了现在我们来一步步完成功能

'双击窗体上的不是控件的地方

进入Form5_Load(...)

'输入以下的代码

'如果是管理员 下拉菜单可用

        If TextBox1.Text = "admin" Then
            ComboBox1.Enabled = True
        End If

'载入xml文档

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

'用XPath取得所有用户名

        Dim getallUser As XmlNodeList
        getallUser = doc.SelectNodes("/userinfo/users/userid")

        Dim allUserInCombobox As XmlNode

'用循环把所有用户名载入到combobx控件中

        For Each allUserInCombobox In getallUser
            ComboBox1.Items.Add(allUserInCombobox.InnerText)
        Next

'根据Textbox的用户名(就是留言主界面传来的)

'如果管理员也可以是combobox里选出来的

'根据用户名,显示该用户名的注册信息到各位文本框中

        Dim getPassPath As XmlNodeList
        getPassPath = doc.SelectNodes("/userinfo/users[userid='" & TextBox1.Text & "']/Pass")
        Dim getfaverityPath As XmlNodeList = doc.SelectNodes("/userinfo/users[userid='" & TextBox1.Text & "']/userinfomain/faverity")
        'Dim getgirlOrBoyPath As XmlNodeList = doc.SelectNodes("/userinfo/users[userid='" & TextBox1.Text & "']/userinfomain/girlOrBoy")
        'Dim getXueliPath As XmlNodeList = doc.SelectNodes("/userinfo/users[userid='" & TextBox1.Text & "']/userinfomain/xueLi")
        Dim getinfotruePath As XmlNodeList = doc.SelectNodes("/userinfo/users[userid='" & TextBox1.Text & "']/userinfomain/infotrue")

        'Dim faverityUpdate As XmlNodeList
        'faverityUpdate = doc.GetElementsByTagName("faverity")
        'Dim passUpdate As XmlNodeList
        'passUpdate = doc.GetElementsByTagName("Pass")
        'Dim girlOrBoyUpdate As XmlNodeList = doc.GetElementsByTagName("girlOrBoy")
        'Dim xueLiUpdate As XmlNodeList = doc.GetElementsByTagName("xueLi")
        'Dim infotrueUpdate As XmlNodeList = doc.GetElementsByTagName("infotrue")
        Dim getPass As XmlNode
        Dim getFaverity As XmlNode
        Dim getInfotrue As XmlNode
        For Each getPass In getPassPath
            TextBox2.Text = getPass.SelectSingleNode("//users[userid='" & TextBox1.Text & "']/Pass").InnerText
            TextBox3.Text = getPass.SelectSingleNode("//users[userid='" & TextBox1.Text & "']/Pass").InnerText
        Next

        For Each getFaverity In getfaverityPath
            TextBox4.Text = getFaverity.SelectSingleNode("//users[userid='" & TextBox1.Text & "']/userinfomain/faverity").InnerText
        Next

        For Each getInfotrue In getinfotruePath
            TextBox5.Text = getInfotrue.SelectSingleNode("//users[userid='" & TextBox1.Text & "']/userinfomain/infotrue").InnerText
        Next

'这以上就要根据用户名,把该用户的信息显示在各文本框中.

'再来实从下拉菜单combobox任选一个用户,就可以把选中的用户我信息显示在各自的文本框中.

'当然只管理员可用

'双击上面的"combobox"控件

'输入以下代码

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        If ComboBox1.SelectedIndex <= 0 Then
            MessageBox.Show("请管理员选择一个用户名!")
            Exit Sub
        End If

        TextBox1.Text = ComboBox1.SelectedItem

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

        Dim showUserownPass As XmlNodeList
        showUserownPass = doc.SelectNodes("/userinfo/users[userid='" & ComboBox1.SelectedItem & "']/Pass")
        Dim getPassValue As XmlNode
        For Each getPassValue In showUserownPass
            TextBox2.Text = getPassValue.SelectSingleNode("//users[userid='" & TextBox1.Text & "']/Pass").InnerText
            TextBox3.Text = getPassValue.SelectSingleNode("//users[userid='" & TextBox1.Text & "']/Pass").InnerText
        Next

        Dim showUserownFaverity As XmlNodeList
        showUserownFaverity = doc.SelectNodes("/userinfo/users[userid='" & ComboBox1.SelectedItem & "']/userinfomain/faverity")
        Dim getFaverityValue As XmlNode
        For Each getFaverityValue In showUserownFaverity
            TextBox4.Text = getFaverityValue.SelectSingleNode("//users[userid='" & TextBox1.Text & "']/userinfomain/faverity").InnerText
        Next

        Dim showUserownInfotrue As XmlNodeList
        showUserownInfotrue = doc.SelectNodes("/userinfo/users[userid='" & ComboBox1.SelectedItem & "']/userinfomain/infotrue")
        Dim getInfotrueValue As XmlNode
        For Each getInfotrueValue In showUserownInfotrue
            TextBox5.Text = getInfotrueValue.SelectSingleNode("//users[userid='" & TextBox1.Text & "']/userinfomain/infotrue").InnerText
        Next

'以上信息就是显示待修改的内容

'**************第一点完成**********************************88888

'第二步来完成修改功能

'双击"修改"按钮

'输入以下的代码

If TextBox2.Text = "" Then
            MessageBox.Show("新密码要填好!")
            Exit Sub
        End If
        If TextBox3.Text = "" Then
            MessageBox.Show("请确认密码")
            Exit Sub
        End If
        If TextBox2.Text <> TextBox3.Text Then
            MessageBox.Show("两次密码不一样")
            Exit Sub
        End If
        If TextBox4.Text = "" Then
            MessageBox.Show("请填好爱好")
            Exit Sub
        End If
        If Not (RadioButton1.Checked Or RadioButton2.Checked) Then
            MessageBox.Show("请选择性别!")
            Exit Sub
        End If
        If ComboBox2.SelectedIndex <= 0 Then
            MessageBox.Show("请选择职业!")
            Exit Sub
        End If
        If TextBox5.Text = "" Then
            MessageBox.Show("请填好个人说明")
            Exit Sub
        End If

'以上代码一定能看得懂吧

'以下代码就是根据用户名来修改并保存到该用户的节点中

        Dim doc As New XmlDocument
        doc.Load("info.xml")
        Dim UpdatePassPath As XmlNodeList
        UpdatePassPath = doc.SelectNodes("/userinfo/users[userid='" & TextBox1.Text & "']/Pass")
        Dim UpdatePass As XmlNode
        For Each UpdatePass In UpdatePassPath
            UpdatePass.InnerText = TextBox2.Text
        Next

        Dim UpdateFaverityPath As XmlNodeList
        UpdateFaverityPath = doc.SelectNodes("/userinfo/users[userid='" & TextBox1.Text & "']/userinfomain/faverity")
        Dim UpdateFaverity As XmlNode
        For Each UpdateFaverity In UpdateFaverityPath
            UpdateFaverity.InnerText = TextBox4.Text
        Next

        Dim UpdategirlOrBoyPath As XmlNodeList
        UpdategirlOrBoyPath = doc.SelectNodes("/userinfo/users[userid='" & TextBox1.Text & "']/userinfomain/girlOrBoy")
        Dim UpdategirlOrBoy As XmlNode
        For Each UpdategirlOrBoy In UpdategirlOrBoyPath
            If RadioButton1.Checked Then
                UpdategirlOrBoy.InnerText = RadioButton1.Text
            Else
                UpdategirlOrBoy.InnerText = RadioButton2.Text
            End If
        Next

        Dim UpdatexueLiPath As XmlNodeList
        UpdatexueLiPath = doc.SelectNodes("/userinfo/users[userid='" & TextBox1.Text & "']/userinfomain/xueLi")
        Dim UpdatexueLi As XmlNode
        For Each UpdatexueLi In UpdatexueLiPath
            UpdatexueLi.InnerText = ComboBox2.SelectedItem
        Next

        Dim UpdateinfotruePath As XmlNodeList
        UpdateinfotruePath = doc.SelectNodes("/userinfo/users[userid='" & TextBox1.Text & "']/userinfomain/infotrue")
        Dim Updateinfotrue As XmlNode
        For Each Updateinfotrue In UpdateinfotruePath
            Updateinfotrue.InnerText = TextBox5.Text
        Next

        doc.Save("info.xml")

        MessageBox.Show("修改成功")
        Exit Sub

'***********************************好了修改功能完成了*************************

'OK 就写这么多了,

'也累了,大家看一下,如果有不懂的请留言.

'以上的包含(一),(二),(三),(四)都测试成功,完全可以运行。代码简单,为大家能够看得懂。

'还有一部分, 查询留言的其实也很简单,跟查询用户差不多,本人这两天有点忙,再过两天再发吧.

'本人保留所有权力

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
  • 412

简单留言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个字)