Как соединить текстовое поле из другой формы с сеткой данных в другой форме - PullRequest
0 голосов
/ 19 мая 2019

По сути, я пытаюсь создать страницу входа, которая связана с базой данных, поэтому в следующей форме я пытаюсь показать информацию о человеке, который вводит свой идентификатор (та же база данных), используя сетку данных.так как мне сделать так, чтобы в таблице данных отображалась единственная необходимая информация?

это то, что я написал в следующей форме

Private Sub DataGrid1_Click()
Adodc1.RecordSource = "select * from STUDENTINFO where Name = '" + txtuser.Text + "'"
Adodc1.Refresh
Adodc1.Caption = Adodc1.RecordSource
End Sub

это код входа пользователя в систему

Private Sub loginbtn_Click()
Adodc1.RecordSource = "select * from STUDENTINFO where Name = '" + txtuser.Text + "'"
Adodc1.Refresh
If (Adodc1.Recordset.EOF = False) Then
    If (txtpass.Text = Adodc1.Recordset.Fields("ID")) Then
    MsgBox "Login Succeeded!"
    Adodc1.Caption = Adodc1.RecordSource
    StudentInfo.Show
    Else
    MsgBox "Invalid Password!", vbCritical, "Login"
    txtuser.Text = ""
    txtpass.Text = ""
    txtuser.SetFocus
    End If
Else
    MsgBox "Invalid Username or Password!", vbCritical, "Login"
     txtuser.Text = ""
    txtpass.Text = ""
    txtuser.SetFocus
    End If
End Sub

Я хочу, чтобы в следующей форме отображалась единственная информация, необходимая пользователю для просмотра в таблице данных

1 Ответ

0 голосов
/ 07 июня 2019

Классический пример уязвимости внедрения SQL.

Чтобы это работало, вы должны как минимум использовать в «следующей форме»:

Adodc1.RecordSource = "select * from STUDENTINFO where Name = '" + LoginForm.txtuser.Text + "'"

Чтобы ссылаться на форму входа, вы не должны выгружать ее, а только скрывать, чтобы она оставалась в памяти. И исправьте уязвимость SQL-инъекций! По крайней мере, так:

Replace(LoginForm.txtuser.Text, "'", "''")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...