忘记密码表格问题VB.net

时间:2015-11-10 16:57:33

标签: vb.net

我正在尝试为我的应用程序创建一个忘记密码屏幕。我正在使用不同页面的选项卡控件。我当前的代码能够创建一个用户,但它能够创建重复项(这是一个需要纠正的问题)然后我遇到忘记密码屏幕无法正常工作的问题。

我的代码是:

Imports System.Data.OleDb

Public Class Form2
Dim connection As New OleDb.OleDbConnection

Dim dbProvider As String
Dim dbSource As String
Dim MyDocumentsFolder As String
Dim TheDatabase As String
Dim FullDatabasePath As String
Dim ds As New DataSet
Dim da As OleDb.OleDbDataAdapter
Dim sql As String
Dim DBTest1 As String
Dim DBTestP1 As String
Dim cmd As New OleDbCommand(sql, connection)
Dim connStr As String
Dim usernamevalid As Integer
Dim passwordvalid As Integer

Public Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
    If User.Text.Length < 4 Then
        usernamevalid = 0
    ElseIf User.Text.Length > 4 Then
        usernamevalid = 1
    End If
    If Pass.Text.Length < 5 Then
        passwordvalid = 0
    ElseIf Pass.Text.Length > 5 Then
        passwordvalid = 1
    End If
    If usernamevalid = 0 Then
        MsgBox("Username Must Be At Least 5 Characters")
    End If
    If passwordvalid = 0 Then
        MsgBox("Password Must Be At Least 5 Characters")
    End If
    If passwordvalid And usernamevalid = 1 And Pass.Text = RePass.Text Then
        dbProvider = "Provider=Microsoft.ACE.OLEDB.12.0;"
        dbSource = "Data Source = C:\Users\Daniel\Documents\Robocopy.accdb"
        Dim connStr = dbProvider & dbSource

        DBTest1 = User.Text
        DBTestP1 = Pass.Text
        sql = "INSERT INTO Robocopy(username,[password],sq,sqa) VALUES('" & DBTest1 & "','" & DBTestP1 & "','" & SQREG.Text & "', '" & SQAREG.Text & "')"

        Using connection = New OleDb.OleDbConnection(connStr)
            Using cmd = New OleDb.OleDbCommand(sql, connection)
                connection.Open()
                cmd.ExecuteNonQuery()
                connection.Close()
                MsgBox("User Created!")
                'With cmd.Parameters
                '.AddWithValue("usernamer", DBTest.Text)
                '.AddWithValue("password", DBTestP.Text)
                '.AddWithValue("email", txtsub.text)
                '.AddWithValue("contactnum", txtau.text)
                'End With
                'cmd.ExecuteNonQuery()
            End Using
        End Using
    ElseIf Not Pass.Text = RePass.Text Then
        MsgBox("Passwords did not match")
    End If
End Sub

Private Sub Button2_Click_1(sender As Object, e As EventArgs) Handles Button2.Click
    Dim result = MessageBox.Show(" Are you sure you want to quit", "Are you sure?", MessageBoxButtons.YesNoCancel)
    Me.Close()
End Sub

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    If NewPass.Text = ReNewPass.Text Then
        Try
            connection.Open()
            cmd = New OleDbCommand("update robocopy set [password] = '" & NewPass.Text & "' where username = '" & UserFGT.Text & "'", connection)
            cmd.ExecuteNonQuery()
            MessageBox.Show("PASSWORD CHANGE SUCCESSFULLY")
            connection.Close()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End If
End Sub
End Class

它捕获的异常是ConnectionString属性尚未初始化

目前我将代码更改为我认为您的意思:

Button4的代码已经改变:

   Private Sub ResetPassword_Click(sender As Object, e As EventArgs) Handles ResetPassword.Click
    If NewPass.Text = ReNewPass.Text Then
        Using connection = New OleDb.OleDbConnection(connStr)
            Using cmd = New OleDb.OleDbCommand(sql, connection)
                connection.Open()
                cmd = New OleDbCommand("update robocopy set [password] = '" & NewPass.Text & "' where username = '" & UserFGT.Text & "'", connection)
                cmd.ExecuteNonQuery()
                MessageBox.Show("PASSWORD CHANGE SUCCESSFULLY")
                connection.Close()
            End Using
        End Using

    End If
End Sub

我现在收到cmd = New OleDbCommand(“update robocopy set [password] ='”&amp; NewPass.Text&amp;“'where username ='”&amp; UserFGT.Text&amp;“'”,连接错误) 我收到cmd的错误,其中显示“只读”变量不能作为赋值的目标

1 个答案:

答案 0 :(得分:0)

我唯一能看到连接字符串错误的是'Data Source ='之后的额外空格。

这是来自connectionstrings.com的一个例子:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;Persist Security Info=False;