用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 就写这么多了,

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

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

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

'本人保留所有权力

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

作者:fx_blog(CSDN)日期:2005-5-22标题:威人留言录(v1.8)注意:转贴一定注明作者及出处***************这一部分我们来完成修改与删除留言功能***********...
  • fx_blog
  • fx_blog
  • 2005年05月22日 02:23
  • 1810

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

作者:fx_blog(CSDN)日期:2005-5-22标题:威人留言录(v1.8)注意:转贴一定注明作者及出处*****************************************开始*...
  • fx_blog
  • fx_blog
  • 2005年05月22日 01:04
  • 1987

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

作者:fx_blog(CSDN)日期:2005-5-22标题:威人留言录(v1.8)注意:转贴一定注明作者及出处*****************************************开始*...
  • fx_blog
  • fx_blog
  • 2005年05月31日 14:54
  • 1239

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

作者:fx_blog(CSDN)日期:2005-5-22标题:威人留言录(v1.8)注意:转贴一定注明作者及出处******************************************开始...
  • fx_blog
  • fx_blog
  • 2005年05月22日 01:45
  • 2736

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

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

java微信订阅号(公众号)开发案例

个人微信订阅号开发基本步骤和代码解析
  • j086924
  • j086924
  • 2016年11月22日 11:31
  • 2187

使用vb.net向xml文件添加节点

今天研究了好久如何用vb.net想xml文件中添加节点 确实在网上写了很多相关的文章,但就是无法理解透彻 刚刚终于找到了一篇文章,使用了极其简单的方式向xml文件中加入了节点 -----------...
  • u010052030
  • u010052030
  • 2013年10月04日 15:12
  • 1118

SSH整合之入门级例子:简易留言板(完整源码)

一.环境说明 ※Windows 10 ver 1703 ※IDEA 2017 2.5 ※JDK 1.8 ※MySQL 5.7 ※Maven 3.5 二.框架说明 ※Spring 4.3.11 ※Spr...
  • cslucifer
  • cslucifer
  • 2017年10月11日 19:36
  • 561

node.js使用(五):网站访问、搭建服务器及留言功能的实现

1、用nodejs实现留言功能。新建message.js文件const http = require('http'); const qs = require('querystring'); cons...
  • sinat_37390744
  • sinat_37390744
  • 2017年07月06日 15:06
  • 229

使用DataGrid数据修改,保存,取消

DataGridEdit ID="Label1" NAME="Label1"> ID="Label2" NAME="Label2"> ID="Label3" NAME="Label3">>using ...
  • kong1122
  • kong1122
  • 2007年08月16日 10:01
  • 1489
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用XML写的留言录(vb.net)(四)
举报原因:
原因补充:

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