Harry Julius Ответов: 1

Как получить данные из базы данных access


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

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

Private Sub ButtonSEARCH_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonSEARCH.Click
        If TextBoxSEARCH.Text = "" Then
            MsgBox("Please check, the SEARCH space is blank", vbExclamation)
        Else
            myConnection.Open()
            Dim str As String
            str = "SELECT * FROM harry WHERE (Yname ='" & TextBoxSEARCH.Text & "')"
            Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection)
            dr = cmd.ExecuteReader
            If dr.Read Then
                TextBoxNAME.Text = dr("Yname").ToString
                TextBoxPHONE.Text = dr("Phone").ToString
                TextBoxEMAIL.Text = dr("Email").ToString
                TextBoxADDRESS.Text = dr("Address").ToString
                TextBoxDURATION.Text = dr("Duration").ToString
                TextBoxHOMEcongr.Text = dr("Homecongr").ToString
                TextBoxSPOUSEphone.Text = dr("Spousephone").ToString
                ComboBoxGENDER.Text = dr("Gender").ToString
                ComboBoxMARITALstatus.Text = dr("Maritalstatus").ToString
                ComboBoxVISITOR.Text = dr("Visitor").ToString
                Dim conn As New OleDb.OleDbConnection
                Dim reader As OleDb.OleDbDataReader
                conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=DIRECTORY.accdb"
                conn.Open()
                cmd = conn.CreateCommand()
                cmd.CommandText = "SELECT * FROM harry WHERE (Yname ='" & TextBoxSEARCH.Text & "')"
                reader = cmd.ExecuteReader
                If reader.Read Then
                    Dim ms As New MemoryStream()
                    Dim arrimage() As Byte
                    If (PictureBoxMAIN.Image IsNot Nothing) Then
                        PictureBoxMAIN.Image.GetType()
                        arrimage = ms.GetBuffer
                        ms.Close()
                    End If
                    dr.Close()
                End If
                reader.Close()
                conn.Close()
                cmd.Dispose()
                conn.Dispose()
            End If
            myConnection.Close()
            TextBoxSEARCH.Text = ""
        End If
    End Sub<pre>

NotPolitcallyCorrect

Первое, что вы должны сделать, это избавиться от приглашения на атаку SQL-инъекции.
Тогда вам следует ясно объясните, в чем проблема, что вы видите на экране то, что мы не видим вообще.

1 Ответов

Рейтинг:
2

Patrice T

Никогда не создавайте SQL-запрос путем конкатенации с пользовательскими вводами, он называется "SQL-инъекция", он опасен для вашей базы данных и подвержен ошибкам.
Одна кавычка в имени - и ваша программа рухнет.
SQL-инъекция-Википедия[^]
SQL-инъекция[^]