Member 13764239 Ответов: 1

Как загрузить данные в базу данных MS access из VB, а затем использовать ее имя пользователя и пароль, как в форме входа в систему


Я новичок в VB &MS access
У меня возникли проблемы с загрузкой данных из формы регистрации VB в таблицу admSignin в базе данных Try2 в MS ACCESS.
и после того, как данные будут подписаны, я бы использовал их adm_Username и adm_Password в форме входа, у которых есть своя собственная таблица с именем admTbl

Так что если кто-нибудь предложит мне какие-то идеи по этому поводу.

Что я уже пробовал:

Option Explicit On
Imports System.Data.OleDb
Imports System.IO

Public Class SIGN_IN
    Dim objCon As New OleDbConnection
    Dim strSQL As String
    Dim strSQLConnection As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Admin\Documents\Try2.accdb"
    Dim da As New OleDb.OleDbDataAdapter
    Dim ds As New DataSet
    Dim er, pho As Integer
    Dim Photos1() As Byte
    Dim cmd As OleDbCommand
    Private Sub SIGN_IN_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        frmLogin.Hide()

    End Sub

    Private Sub SIGN_IN_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed
        objCon.Close()
    End Sub


    Private Sub btnSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSubmit.Click
        er = 0
        If txtUsername.Text = "" Or txtPassword.Text = "" Or txtFname.Text = "" Or txtLname.Text = "" Or txtAge.Text = "" Or txtAddrs.Text = "" Or comProgramm.Text = "" Or comBatch.Text = "" Then
            er = 1
            If Val(DateTimePicker1.Text) < 3 Then
                MsgBox("Please Fill All The Detail's. Please Select Birth Date.")
            Else
                MsgBox("Please Fill All The Detail's.")
            End If
        End If


        ds.Clear()
        strSQL = "select * from admSignup"
        cmd = New OleDbCommand(strSQL, objCon)
        da.SelectCommand = cmd
        da.Update(ds, "admSignup")
        Dim LastNo As Integer
        Dim ph As String
        LastNo = ds.Tables("admSignup").Rows.Count + 1
        If LastNo >= 0 Then
            ph = "PH" & LastNo
        Else
            ph = "PH" & 0
        End If
       

        'insert
        If er = 0 Then

            cmd.Connection = objCon
            cmd.CommandText = "insert into admSignup(adm_username, adm_password, first_name, last_name, dob, Address, Program, Batch) values('" & txtUsername.Text & "','" & txtPassword.Text & "','" & DateTimePicker1.Text & "','" & txtFname.Text & "','" & txtLname.Text & "','" & txtAge.Text & "','" & txtAddrs.Text & "','" & comProgramm.Text & "','" & comBatch.Text & "')"
            cmd.ExecuteNonQuery()


        End If
        'MsgBox("DONE!!")
        Dim result As Integer = MessageBox.Show("New Student Added.", "Added", MessageBoxButtons.OK)

        Me.Close()

        'objCon.Close()

        'objCon.Close()

        Me.Close()
        frmLogin.Show()

Maciej Los

Не уверен, какого рода проблемы у вас есть...

Если вы хотите создать приложение, которое отображает Login form, в котором пользователь должен предоставить регистрационные данные, чтобы иметь возможность использовать ваше приложение, проверьте это: Как создать форму входа и форму пользователя в системе VB.Net[^]

1 Ответов

Рейтинг:
1

Patrice T

cmd.CommandText = "insert into admSignup(adm_username, adm_password, first_name, last_name, dob, Address, Program, Batch) values('" & txtUsername.Text & "','" & txtPassword.Text & "','" & DateTimePicker1.Text & "','" & txtFname.Text & "','" & txtLname.Text & "','" & txtAge.Text & "','" & txtAddrs.Text & "','" & comProgramm.Text & "','" & comBatch.Text & "')"

Не решение вашего вопроса, а еще одна проблема, которая у вас есть.
Никогда не создавайте SQL-запрос путем объединения строк. Рано или поздно вы сделаете это с помощью пользовательских вводов, и это откроет дверь к уязвимости под названием "SQL-инъекция", она опасна для вашей базы данных и подвержена ошибкам.
Одна кавычка в имени - и ваша программа выйдет из строя. Если пользователь вводит имя, например "Брайан О'Коннер", может привести к сбою вашего приложения, это уязвимость SQL-инъекции, и сбой-это наименьшая из проблем, вредоносный пользовательский ввод, и он продвигается к командам SQL со всеми учетными данными.
SQL-инъекция - Википедия[^]
SQL-инъекция[^]
Атаки SQL-инъекций на примере[^]
PHP: SQL-инъекция - руководство пользователя[^]
Шпаргалка по предотвращению инъекций SQL - OWASP[^]


Maciej Los

5ed!

Patrice T

Спасибо