单击按钮时增加特定 ID 的数据行的值

Increase value of data row of particular ID on button click

在我的应用程序中,客户在线预订车辆,网站管理员将职责分配给已添加的 drivers。在屏幕截图下方,您可以看到 drivers.

的列表

现在我想做的是,如果管理员向某些 driver 分配了一些职责,那么在分配职责列中应该计算哪个 driver 获得了多少职责。例如如果管理员将职责分配给第一个 driver,则职责分配列应更新为 1。是否可以这样做?在我的代码下方,将职责分配给 drivers

VB

    Protected Sub assignDuty_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles assignDuty.Click
        Dim Did As String
        Did = DriversList.SelectedItem.ToString
    Try
        Dim str1 As String = "UPDATE newBooking SET Assigned = '" & Did & "', status = 'Approved', DriverContact = '" + driverMobile.Text + "', vehicleNo = '" + vehicleNo.Text + "'  WHERE Bid = '" & trackInput.Text + "'"
        Dim data As MySqlDataReader
        Dim adapter As New MySqlDataAdapter
        Dim command As New MySqlCommand
        command.CommandText = str1
        command.Connection = con
        adapter.SelectCommand = command
        con.Open()
        data = command.ExecuteReader
        con.Close()
        send_customer_message()
        send_driver_message()
        customer_confirm_mail()
    Catch ex As Exception
        Response.Write(ex)
    End Try
End Sub

    Protected Sub DriversList_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DriversList.SelectedIndexChanged
        Try
            Dim str As String = "SELECT * FROM addDriver where DriverID='" + DriversList.SelectedValue.ToString + "';"
            con.Open()
            Dim cmd As New MySqlCommand(str, con)
            Dim da As New MySqlDataAdapter(cmd)
            Dim dt As New DataTable
            da.Fill(dt)
            con.Close()
            orderStatus.Visible = True
            additionalDetail.Visible = True
            vehicleNo.Text = dt.Rows(0)("VehicleRegistration").ToString
            driverName.Text = dt.Rows(0)("DriverName").ToString
            driverMobile.Text = dt.Rows(0)("contact")
            'duration.Text = dt.Rows(0)("duration")
        Catch ex As Exception
            Response.Write(ex)
        End Try
    End Sub

更新!

管理员如何为 driver 分配职责。 当客户在线预订时,管理员会收到邮件。他只需输入预订 ID 并点击跟踪订单,所有详细信息将显示在左侧部分。在右侧,他有 driver 的列表,他有 select 的列表,在 select 最后一节车辆详细信息得到更新,最后他点击分配任务,以便在新预订中更新数据库 table.

更新!

Protected Sub assignDuty_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles assignDuty.Click
        Try
            Dim Did As String
            Did = DriversList.SelectedItem.ToString

            Dim Query1 As String
            Query1 = "UPDATE newBooking SET Assigned = '" & Did & "', status = 'Approved', DriverContact = '" + driverMobile.Text + "', vehicleNo = '" + vehicleNo.Text + "'  WHERE Bid = '" & trackInput.Text + "'"
            RunCommand(Query1)

            Dim Query2 As String
            Query2 = "UPDATE addDriver SET [DutyAssigned] = [DutyAssigned] + 1 WHERE DriverID = " & Did
            RunCommand(Query2)
        Catch ex As Exception
            Response.Write(ex)
        End Try
    End Sub

    Public Function RunCommand(ByVal myQry As String) As String
        Try
            Using _conn As New MySqlConnection("constr")
                Using _comm As New MySqlCommand()
                    With _comm
                        .Connection = _conn
                        .CommandText = myQry
                        .CommandType = CommandType.Text
                    End With
                    _conn.Open()
                    _comm.ExecuteNonQuery()
                End Using
            End Using
            RunCommand = ""
        Catch ex As Exception
            RunCommand = ex.Message
        End Try
    End Function

[![在此处输入图片描述][4]][4]

  1. 我鼓励您使用绑定参数而不是连接查询字符串(如 SELECT * FROM addDriver where DriverID=:DriverIdcmd.Parameter.Add("DriverId",MySqlType.Varchar,<fieldLength>,"DriverId"。在更新查询中也这样做。)
  2. assignDuty_Click 中,您应该使用 UpdateCommand 而不是 SelectCommand(我不是 MySql 专业人士,但 SelectCommand 对我来说很有味道)。
  3. 要更新 Duty Assigned 字段,请使用 SET DutyAssigned = DutyAssigned + 1 ...(或 newBooking 中命名的任何字段)增强 assignDuty_Click 中的更新字符串。

检查下面的代码。在这里您需要在 RunCommand 方法中指定您的连接字符串。让我知道结果。

Protected Sub assignDuty_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles assignDuty.Click
    Try
        Dim Did As String
        Did = DriversList.SelectedItem.ToString

        Dim DriverID As String
        DriverID = DriversList.SelectedValue

        Dim Query1 As String
        Query1 = "UPDATE newBooking SET Assigned = '" & Did & "', status = 'Approved', DriverContact = '" + driverMobile.Text + "', vehicleNo = '" + vehicleNo.Text + "'  WHERE Bid = '" & trackInput.Text + "'"
        RunCommand(Query1)

        Dim Query2 As String
        Query2 = "UPDATE addDriver SET DutyAssigned = DutyAssigned + 1 WHERE DriverID = " & DriverID
        RunCommand(Query2)
    Catch ex As Exception
        Response.Write(ex)
    End Try
End Sub

Public Function RunCommand(ByVal myQry As String) As String
    Try
        Using _conn As New MySqlConnection("connectionStr here")
            Using _comm As New MySqlCommand()
                With _comm
                    .Connection = _conn
                    .CommandText = myQry
                    .CommandType = CommandType.Text
                End With
                _conn.Open()
                _comm.ExecuteNonQuery()
            End Using
        End Using
        RunCommand = ""
    Catch ex As Exception
        RunCommand = ex.Message
    End Try
End Function