2015-11-30 3 views
2

В моем приложении клиенты бронируют автомобиль онлайн & Администратор сайта назначает долг водителям, которые уже добавлены. Ниже экрана вы можете увидеть список драйверов.Увеличьте значение строки данных определенного идентификатора при нажатии кнопки

Теперь, что я пытаюсь сделать, это если администратор назначает какую-то обязанность для какого-то водителя, тогда в столбце назначения должен указывать, какой водитель получает сколько обязанностей. например если администратор назначает обязанность первому водителю, тогда столбец с обязательным положением должен быть обновлен на 1. Возможно ли это сделать? Ниже мой код, чтобы назначить обязанность водителей

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 

UPDATE!

Как администратор назначает обязанность водителям. Администратор получает почту, когда книги клиентов онлайн. Он просто вводит номер бронирования & заказ кликов по треку & все детали будут отображаться в левой части. На правой стороне у него есть список драйверов & он выбирает один & при выборе последнего раздела сведения об автомобиле обновляется & Наконец-то он нажимает на назначение долга, поэтому databse обновляется в таблице newBooking.

ОБНОВЛЕНИЕ!

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]

+0

Можете ли вы подробнее рассказать о том, как администратор назначит долг конкретному водителю? – Prabhat

+0

@SuprabhatBiswal Спасибо за ответ. Я обновил свою позицию, пожалуйста, пройдите через это. –

ответ

0

Проверьте код. Здесь вам нужно указать строку подключения в методе 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 
+0

Извините Ирфан Бхай за поздний ответ. Я обновил свой пост и общий scrennshot для обеих таблиц. –

+0

Я видел структуру. На самом деле вы можете сделать это двумя способами. 1. Напишите хранимую процедуру и используйте два запроса, как я упомянул в своем предыдущем ответе. 2. Сохраните решение, как оно есть, но выполните запрос обновления anothet, как показано ниже: -UPDATE DRIVERS SET [duty asaigned] = [duty asaigned] + 1 WHERE DRIVERID = DId –

+0

В моем запросе проверьте имя столбца и таблицы. Я вне дома, поэтому не могу написать полный и точный код для вас. Если вы внимательно следите за моими ответами, вы можете написать это. В противном случае дайте мне знать, я сделаю это, когда вернусь. –

0
  1. Я хотел бы призвать вас использовать параметры связывания вместо concatinating строки запроса (например, SELECT * FROM addDriver where DriverID=:DriverId и cmd.Parameter.Add("DriverId",MySqlType.Varchar,<fieldLength>,"DriverId". Делайте это также в запросе Обновить.)
  2. В assignDuty_Click вы должны использовать UpdateCommand вместо SelectCommand (I'm no MySql pro, но SelectCommand пахнет для меня).
  3. Для обновления поля Duty Assigned улучшите строку Update в assignDuty_Click с помощью SET DutyAssigned = DutyAssigned + 1 ... (или как бы то ни было, имя поля в newBooking).
Смежные вопросы