Visual Basic.NET - El Id Seleccionado no tiene datos relacionados

 
Vista:
Imágen de perfil de Jose
Val: 10
Ha aumentado su posición en 6 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

El Id Seleccionado no tiene datos relacionados

Publicado por Jose (7 intervenciones) el 15/07/2019 22:20:20
Buen dia amiguitos. Quisiera me colaboraran con el siguiente problemita que tengo:

Resulta que tengo dos tablas: CLIENTE Y VEHICULO. Va relacionada de uno a muchos, un CLIENTE pude tener muchos VEHICULOS.

1
2
3
4
5
6
7
8
9
10
Dim SQL As String = "SELECT PLACA, CAPACIDAD, CONDUCTOR, IDCLIENTE, ID FROM VEHICULO WHERE IDCLIENTE = " + cboCliente.SelectedValue.ToString() + " ORDER BY PLACA"
adaptador = New OleDbDataAdapter(SQL, conexion)
tbl = New DataTable()
 
adaptador.Fill(tbl)
 
txtPlaca.Text = String.Empty
 
dgv.DataSource = tbl
txtPlaca.Text = tbl.Rows(0)(0).ToString()

Me funciona, pero cuando selecciono un CLIENTE que no posee VEHICULOS me lanza la excepcion: System.IndexOutOfRangeException: 'No hay ninguna fila en la posición 0.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

El Id Seleccionado no tiene datos relacionados

Publicado por Phil Rob (1546 intervenciones) el 16/07/2019 15:30:05
Hola,

Pruebas este linea :

1
Dim SQL As String = "SELECT PLACA, CAPACIDAD, CONDUCTOR, IDCLIENTE, ID FROM VEHICULO WHERE IDCLIENTE = '" + cboCliente.SelectedValue.ToString() + "' ORDER BY PLACA"

En el comando WHERE, he puesto ' antes " y despues " .

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Diego
Val: 605
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

El Id Seleccionado no tiene datos relacionados

Publicado por Diego (190 intervenciones) el 16/07/2019 22:09:24
Hola Jose, probá escribiendo las ultimas lineas dentro de un condicional: (Si tiene filas.... entonces....)

1
2
3
4
5
6
7
8
if tbl.rows.count > 0 then
  dgv.DataSource = tbl
  txtPlaca.Text = tbl.Rows(0)(0).ToString()
else
  dgv.datasource = nothing
  dgv.rows.clear
  txtplaca.text = ""
endif

De ese modo solo enlazas los datos al control, si hay algo que mostrar.
Saludos y +Bytes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar