您的位置:首页 > 编程语言 > VB

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

2005-05-22 02:56 369 查看
作者: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 就写这么多了,
'也累了,大家看一下,如果有不懂的请留言.
'以上的包含(一),(二),(三),(四)都测试成功,完全可以运行。代码简单,为大家能够看得懂。
'还有一部分, 查询留言的其实也很简单,跟查询用户差不多,本人这两天有点忙,再过两天再发吧.
'本人保留所有权力
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: