Visual Basic.NET - Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))"

 
Vista:

Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))"

Publicado por adolfo (55 intervenciones) el 18/03/2019 20:19:21
Buenas,

Tengo el siguente codigo que carga 3 datatables con distinta informacion para mostrar en un reporte de CR.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
dt.Clear()
da = New SqlDataAdapter("SELECT NumFactura, NumPlaca, NombreCli, FechaFac, EstadoFac FROM TBFacturasEnc WHERE NumFactura = '" & VarNumFactura & "'", GlobalVariables.SistemaContableCon)
da.Fill(dt)
 
dt1.Clear()
da1 = New SqlDataAdapter("SELECT CodigoProd, NombreProd, CantidadProd, PrecioProd, SubTotalProd FROM TBFacturasDetalle WHERE NumFactura = '" & VarNumFactura & "'", GlobalVariables.SistemaContableCon)
da1.Fill(dt1)
 
dt2.Clear()
da2 = New SqlDataAdapter("SELECT NumFactura, SaldoFac, Reversado FROM TBCxC WHERE NumFactura = '" & VarNumFactura & "' and Reversado = 0", GlobalVariables.SistemaContableCon)
da2.Fill(dt2)
 
 
Dim Reporte As New ReportDocument
With Reporte
    .Load(System.AppDomain.CurrentDomain.BaseDirectory() & "\Reportes\RPTFactura.rpt")
    .Database.Tables("DSTFacturasEnc").SetDataSource(dt)
    .Database.Tables("DSTFacturasDetalle").SetDataSource(dt1)
    .Database.Tables("DSTCxC").SetDataSource(dt2)    ---------->     el ERROR se muestra aqui
End With

al correr el codigo de arriba muestra el siguiente error:
System.Runtime.InteropServices.COMException: 'Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))'

He tratado de todo, y no puedo determinar porque los dos primeros DT si funcionan y en el 3ero siempre me da error.
Todo funciona bien si elimino el dt2.

Agradeceria si me pueden dar una sugerancia de que cause este error?

Saludos, y muchas gracias.
Adolfo
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 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

Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))'

Publicado por Diego (190 intervenciones) el 18/03/2019 20:38:28
Hola Adolfo, fijate que coincidan los nombres de los campos de tu consuta, con los parámetros de la tabla DSTCxC en tu reporte. Tal vez algún error de tipeo... ?

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
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

Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))'

Publicado por Phil Rob (1572 intervenciones) el 18/03/2019 20:47:10
Hola,

Si el error es ahí :
1
2
3
dt2.Clear()
da2 = New SqlDataAdapter("SELECT NumFactura, SaldoFac, Reversado FROM TBCxC WHERE NumFactura = '" & VarNumFactura & "' and Reversado = 0", GlobalVariables.SistemaContableCon)
da2.Fill(dt2)
El error es quizá en la sintaxica de la requesta , asi tienes que probar los simples apóstrofos con el cero :
da2 = New SqlDataAdapter("SELECT NumFactura, SaldoFac, Reversado FROM TBCxC WHERE NumFactura = '" & VarNumFactura & "' and Reversado ='" & 0 & "'", GlobalVariables.SistemaContableCon)
o cargar un variable con el cero y lo escribir entonces como VarNumFactura.

Espero que esto te ayudará ...
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 Giancarlo
Val: 377
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))'

Publicado por Giancarlo (488 intervenciones) el 20/03/2019 04:08:12
genera un punto de interrupción en la linea que te sale el error y fijate el comando que se genera, copia y pega en el sql y verifica que obtengas un resultado.

por cierto, en lugar de agregar 3 tablas, puedes agregar un solo dataset
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