KD209 Ответов: 1

Запись / обновление поля БД из формы Windows VS2013


То, что я пытаюсь сделать, - это запросить определенное поле для определенного значения. Если значение поля и входное значение равны, то я хочу, чтобы другое поле обновилось с True на False в той же строке, где было найдено совпадение "равно".

Также,

Это вызывается с помощью события button_click.

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

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Dim connStr As String
    connStr = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=C:\Tech\LoanerTracking.accdb"

    Dim objConn As New OleDbConnection(connStr)

    Dim str As String
    str = "Select AssetBarcode from TrackingInfo Where (AssetBarcode=TextBox3 AND CheckedOut=True);"

    Dim chg As String
    chg = "Select CheckedOut from TrackingInfo where AssetBarcode=TextBox3"

    Dim cmd As OleDbCommand = New OleDbCommand(str)

    cmd.Connection = objConn

    objConn.Open()

    Try
        If str = TextBox3.Text Then
            chg = False

        End If

        objConn.Close()

        MsgBox("Item Successfully Checked-In")

    Catch ex As Exception
        MsgBox(ex.Message)
    End Try

    TextBox3.Text = String.Empty
    TextBox2.Text = String.Empty
    TextBox1.Text = String.Empty

End Sub

Richard MacCutchan

В чем проблема?

KD209

Привет Ричард,

Ричард предложил решение, которое я искала.

1 Ответов

Рейтинг:
5

Richard Deeming

Как вы забыли, как выполнить запрос и передать параметр с тех пор вчера[^]?!

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Dim connStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Tech\LoanerTracking.accdb"
    Using conn As New OleDbConnection(connStr)
 
        Dim query As String = "Update TrackingInfo Set CheckedOut = 0 WHERE AssetBarcode = ? And CheckedOut = 1"
        Using cmd As New OleDbCommand(query, conn)
            cmd.Parameters.AddWithValue("?", TextBox3.Text)
            
            Try
                conn.Open()
                cmd.ExecuteNonQuery()
                MsgBox("Item Successfully Checked-In")
                
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End Using
    End Using
    
    TextBox3.Text = String.Empty
    TextBox2.Text = String.Empty
    TextBox1.Text = String.Empty
End Sub


KD209

Привет Ричард,

Я пытаюсь переучить все это, так как прошло уже 18 лет с тех пор, как я делал это в последний раз. Спасибо вам за вашу помощь! Ваш код делает именно то, что я искал.