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

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

作者:fx_blog(CSDN)

日期:2005-5-22

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

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

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

'*******************************************准备工作*****************************************

'首先需在自己机上有.Net Framework2003

'打开.Net Framework-文件-新建-项目-Visual-Basic-项目

留言主界面如上所示:

(1)这是个由三个Panel组成的小界面,其中蓝色部分,要设为Visible=false

(2)我的文件夹是:D:/vbproject/WindowsApplication2

(3)在:D:/vbproject/WindowsApplication2/bin下建立一个"info.xml"

'******************************准备工作结束***************************************

'***************************接下来----开始写代码**************************************

'首先来完成========"注册"功能

'先在最上面的地方导入名命空间

Imports System.Xml
Imports System.Xml.XPath
Imports System.IO
Imports System.Text
Imports System.Data
Imports System.Text.RegularExpressions
Imports WindowsApplication2.form4

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

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

(2)右边---Windows窗体

(3)打开

'回到留言界面

'双击上面的"注册"按钮

'写入:

      Dim newform As New Form2
      newform.Show()

'上面的不用我来解释了吧,不懂的去看书

'好现在打开窗体2------Form2

界面如下:

这个窗体要注册的地方:

那个combobox1里的"请选择职业",要和Items里的第一项一样(Text=SelectedIndex=0)

首先完成“是否有该用户”的功能

'同样也要导入名命空间

'双击窗体何一地方

'在编辑代码的最上方导入命名空间:

Imports System.Data
Imports System.Xml
Imports System.Xml.XPath
Imports System.IO
Imports System.Text
Imports System.Collections

'然后双击"是否有该用户"按钮

'写入以下代码:

    If TextBox1.Text = "" Then
            MessageBox.Show("用户名不能为空!")
            Exit Sub
        End If
        Dim doc As New XmlDocument
        doc.Load("info.xml")
        Dim root As XmlElement
        Dim list As XmlNodeList = doc.GetElementsByTagName("userid")
        Dim i As Integer
        For i = 0 To list.Count - 1
            While TextBox1.Text = list(i).InnerText
                MessageBox.Show("已经有该用户名了")
                Exit Sub
            End While
        Next
        MessageBox.Show("你可以用这个用户名!")
        Exit Sub

'再来完成注册功能:

'双击右下角的"注册"按钮:

'写入以下的代码

(1)首先也要检测是否在XML文档里是否有该用了:

(2)第二步再来注册

(3)我们用的是XMLDocument来完成的

 If TextBox1.Text <> "" Then
            Dim doc As New XmlDocument
            doc.Load("info.xml")
            Dim root As XmlElement
            Dim list As XmlNodeList = doc.GetElementsByTagName("userid")
            Dim i As Integer
            For i = 0 To list.Count - 1
                While TextBox1.Text = list(i).InnerText
                    MessageBox.Show("已经有该用户名了")
                    Exit Sub
                End While
            Next
        End If
        If TextBox1.Text <> "" And TextBox2.Text <> "" And TextBox3.Text <> "" And TextBox4.Text <> "" And ComboBox1.SelectedIndex > 0 And (RadioButton1.Checked Or RadioButton2.Checked) Then
            If TextBox2.Text = TextBox4.Text Then
                Try
                    Dim doc As New XmlDocument
                    doc.Load("info.xml")
                    Dim root As XmlNode = doc.DocumentElement
                    Dim list As XmlNodeList = doc.GetElementsByTagName("userid")
                    Dim i As Integer
                    ' For i = 0 To list.Count - 1
                    'If TextBox1.Text <> list(i).InnerText Then
                    Dim users As XmlElement = doc.CreateElement("users")
                    Dim newname As XmlElement = doc.CreateElement("userid")
                    newname.InnerText = TextBox1.Text
                    users.AppendChild(newname)

                    Dim newPass As XmlElement = doc.CreateElement("Pass")
                    newPass.InnerText = TextBox2.Text
                    users.AppendChild(newPass)

                    Dim userinfomain As XmlElement = doc.CreateElement("userinfomain")

                    Dim faverity As XmlElement = doc.CreateElement("faverity")
                    faverity.InnerText = TextBox3.Text
                    userinfomain.AppendChild(faverity)

                    Dim girlOrBoy As XmlElement = doc.CreateElement("girlOrBoy")
                    If (RadioButton1.Checked) Then
                        girlOrBoy.InnerText = RadioButton1.Text
                    Else
                        girlOrBoy.InnerText = RadioButton2.Text
                    End If
                    userinfomain.AppendChild(girlOrBoy)

                    Dim xueLi As XmlElement = doc.CreateElement("xueLi")
                    xueLi.InnerText = ComboBox1.SelectedItem
                    userinfomain.AppendChild(xueLi)

                    Dim infotrue As XmlElement = doc.CreateElement("infotrue")
                    infotrue.InnerText = TextBox5.Text
                    userinfomain.AppendChild(infotrue)

                    users.AppendChild(userinfomain)

                    root.AppendChild(users)

                    doc.Save("info.xml")
                    MessageBox.Show("注册成功!!")
                    Me.Close()

                    Exit Sub
                    'Else
                    'MessageBox.Show("对不起,该用户名已经存在")
                    'Exit Sub
                    'End If
                    'Next

                Catch ex As Exception
                    MessageBox.Show(ex.Message)
                End Try
            Else
                MessageBox.Show("两次密码不一致")
            End If
        Else
            MessageBox.Show("请输入完整!")
        End If

'“关闭”按钮

Me.Close()

'“重填”按钮

     TextBox1.Text = ""
        TextBox2.Text = ""
        TextBox3.Text = ""
        TextBox4.Text = ""
        TextBox5.Text = ""

'好了,注册界成就完成了.

'现在回到留言主界面,我们来完成登陆功能

'双击留言主界面上方的"登陆"按钮

'在以下写入如下代码:

 Me.Text = "留言主界面-用户登陆"
        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
                            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

'好了,登陆功能完成了

'接下来完成用户搜索功能(支持)模糊搜索功能.

' 双击"查询用户"按钮

'在下面写入以下的代码:

Me.Text = "留言主界面-用户名搜索"
        TextBox4.Text = ""
        Dim doc As XmlDocument = New XmlDocument
        doc.Load("info.xml")
        Dim match As String
        match = TextBox3.Text
        Dim regular As Regex = New Regex(match)
        Dim userid As XmlNodeList = doc.GetElementsByTagName("userid")
        Dim faverity As XmlNodeList = doc.GetElementsByTagName("faverity")
        Dim girlOrBoy As XmlNodeList = doc.GetElementsByTagName("girlOrBoy")
        Dim xueLi As XmlNodeList = doc.GetElementsByTagName("xueLi")
        Dim infotrue As XmlNodeList = doc.GetElementsByTagName("infotrue")
        Dim i As Integer

        TextBox4.Text += "以下是相似的记录" & vbCrLf
        TextBox4.Text += "==================================" & vbCrLf
        For i = 0 To userid.Count - 1
            While regular.IsMatch(userid(i).InnerText)
                TextBox4.Text += "用户名: " & userid(i).InnerText & vbCrLf
                TextBox4.Text += "爱好: " & faverity(i).InnerText & vbCrLf
                TextBox4.Text += "性别: " & girlOrBoy(i).InnerText & vbCrLf
                TextBox4.Text += "学历: " & xueLi(i).InnerText & vbCrLf
                TextBox4.Text += "各人说明: " & infotrue(i).InnerText & vbCrLf
                TextBox4.Text += "=======================================" & vbCrLf
                Exit While
            End While
        Next

'用户查询功能就完成了

'大家先理解理理解一下

'*******************************************结束*****************************************8

'好了,今天就先写一部分,总共有五部分.

'大家理理解理解

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

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