如何取出数据库中存的相关数据并与TextBox中的进行比较。
做一个修改密码的对话框,3个TextBox框,依次为:输入旧密码,输入新密码,确认新密码。
问:现在要求检查输入的旧密码是否与数据库中原来保存的相同,如何写?高手帮忙。
下面是我的代码:
Imports System.Data.OleDb
Public Class ChangePassword
Dim UserName As String = LoginForm.strUserName
Dim OldPW As String
Dim WithEvents cnData As New OleDbConnection
Dim Con As New OleDbCommand
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
cnData.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:database password=data;;Data Source= " & Application.StartupPath & "\data.mdb;Persist Security Info=False "
cnData.Open()
Con.Connection = cnData
Con.CommandText = "SELECT psswd FROM [user] WHERE acount = ' " & UserName & " ' "
If Equals(Con.ExecuteScalar, OldPasswd.Text) = False Then
MessageBox.Show( "输入的旧密码有错,请查明后再输 ", "旧密码错误 ", MessageBoxButtons.OK)
ElseIf NewPasswd.Text = ConfirmPasswd.Text Then
Con.CommandText = "UPDATE [user] SET passwd = ' " & NewPasswd.Text & " 'WHERE acount = ' " & UserName & " ' "
Con.ExecuteNonQuery()
Else
MessageBox.Show( "两次输入的新密码不相同,请检查后输入! ", "确认新密码 ", MessageBoxButtons.OK)
NewPasswd.Text = " "
ConfirmPasswd.Text = " "
End If
End Sub
其中LoginForm为登陆窗体,此处获取LoginForm中登陆的用户名
user为用户表;acount为用户名列,主健;passwd为密码列;所用数据库为access
[解决办法]
"Con.ExecuteScalar ",好象不对吧,你怎么没有建立一个datareader对象呢,好象Command对象不能直接取值吧