Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/01/2013, 21:08
khryztall
 
Fecha de Ingreso: mayo-2011
Mensajes: 47
Antigüedad: 12 años, 9 meses
Puntos: 1
Pregunta Consulta no toma el primer valor SQL .NET

Buenas noches amigos;

Quisiera por favor me ayudaran en el siguiente problema:

Tengo un ListView y como es lógico declaro columnas y en el momento de llenar los datos hago una consulta de la siguiente manera:

Código .NET:
Ver original
  1. Try
  2.             sql = "SELECT * FROM registro_variables;"
  3.  
  4.             Dim comandoSQL As New OdbcCommand(sql, conexionBD)
  5.             Dim resultadoSQL As OdbcDataReader = comandoSQL.ExecuteReader()

En el caso de haber resultados la consultado pregunta por ellos y comienza a llenar el listview de la siguiente manera:

Código .NET:
Ver original
  1. If (resultadoSQL.Read) Then
  2.                 Dim i As Integer
  3.                 Dim aux As Integer
  4.                 i = 0
  5.  
  6.                 While resultadoSQL.Read
  7.                     ListViewVariables.Items.Add(resultadoSQL(0))
  8.                     For aux = 1 To resultadoSQL.FieldCount - 1
  9.                         ListViewVariables.Items(i).SubItems.Add(resultadoSQL(aux))
  10.                         MsgBox(resultadoSQL(aux))
  11.                     Next aux
  12.                     i = i + 1
  13.                 End While
  14.             Else
  15.                 MsgBox("no se encontraron resultados")
  16.             End If

y Finaliza con la captura en caso de error:

Código .NET:
Ver original
  1. Catch ex As OdbcException
  2.  
  3.             'SE MUESTRA ERROR DE CONEXION CON LA BASE DE DATOS
  4.             MsgBox(ex.Message)
  5.  
  6.         End Try

En el momento de mostrar la consulta solo me muestra a partir del segundo ítem de la consulta, me explico los ítems dentro de la tabla están numerados con un index autoincremental y al mostrar los resultados se muestra desde el index=2 en lugar de mostrar desde el index=1.

He intentado mostrando los resultados con un msgbox y efectivamente la consulta no toma el primer resultado, no se el porque de esto, por favor necesito su colaboración.

el código completo de la función seria así:

Código .NET:
Ver original
  1. 'LIBRERIAS DE IMPORTACION DE ODBC PARA CONEXION DE BASE DE DATOS
  2. Imports System.Data
  3. Imports System.Data.Odbc
  4.  
  5. Public Class Form08_ConfigPistas
  6.  
  7.     Private Sub Form08_ConfigPistas_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  8.         'FORMATO DEL LISTVIEW
  9.         ListViewVariables.Clear()
  10.         ListViewVariables.View = View.Details
  11.         ListViewVariables.Columns.Add("Index", 50, HorizontalAlignment.Right)
  12.         ListViewVariables.Columns.Add("Var PLC", 120, HorizontalAlignment.Left)
  13.         ListViewVariables.Columns.Add("Var APP", 120, HorizontalAlignment.Left)
  14.         ListViewVariables.Columns.Add("Tipo", 100, HorizontalAlignment.Left)
  15.         ListViewVariables.Columns.Add("Comentario", 200, HorizontalAlignment.Left)
  16.  
  17.         Dim sql As String
  18.  
  19.         Try
  20.  
  21.             'SE BUSCA AL USUARIO EN EL SISTEMA
  22.             sql = "SELECT * FROM registro_variables;"
  23.  
  24.             Dim comandoSQL As New OdbcCommand(sql, conexionBD)
  25.             Dim resultadoSQL As OdbcDataReader = comandoSQL.ExecuteReader()
  26.  
  27.             If (resultadoSQL.Read) Then
  28.                 Dim i As Integer
  29.                 Dim aux As Integer
  30.                 i = 0
  31.  
  32.                 While resultadoSQL.Read
  33.                     ListViewVariables.Items.Add(resultadoSQL(0))
  34.                     For aux = 1 To resultadoSQL.FieldCount - 1
  35.                         ListViewVariables.Items(i).SubItems.Add(resultadoSQL(aux))
  36.                         MsgBox(resultadoSQL(aux))
  37.                     Next aux
  38.                     i = i + 1
  39.                 End While
  40.             Else
  41.                 MsgBox("no se encontraron resultados")
  42.             End If
  43.  
  44.         Catch ex As OdbcException
  45.  
  46.             'SE MUESTRA ERROR DE CONEXION CON LA BASE DE DATOS
  47.             MsgBox(ex.Message)
  48.  
  49.         End Try
  50.     End Sub
  51. End Class