2011-12-24 18 views
5

Aunque sé que hay datos para la consulta SQL exacta que realizo, por el hecho de que estoy haciendo la consulta SQL directamente en la base de datos, Continuamente recibo una excepción diciendo que no existen datos. Mi código está a continuación:Error: "No existen datos para la fila/columna" usando OdbcDataReader

 try 
     { 
      dbConnection.Open(); 

      // Process data here. 
      OdbcCommand dbCommand = dbConnection.CreateCommand(); 
      dbCommand.CommandText = "select forename from tblperson where personcode in (select clientcode from tblclient) and surname = '######'"; 
      OdbcDataReader dbReader = dbCommand.ExecuteReader(); 

      Console.WriteLine(dbReader.GetString(0)); 

      dbReader.Close(); 
      dbCommand.Dispose(); 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.Message); 
     } 
     finally 
     { 
      dbConnection.Close(); 
     } 

¿Alguien me puede dar razones de por qué esto estaría sucediendo? La consulta debería arrojar un único resultado, y actualmente solo estoy haciendo esto para asegurarme de que está funcionando, lo cual no parece ser así. Cualquier ayuda sería muy apreciada.

Respuesta

6

Después de llamar a ExecuteReader, el lector se coloca antes de el primer registro devuelto. Para leer el primer registro es necesario llamar a Read()

dbReader.Read() 

O, por supuesto, si hay varias filas:

while (dbReader.Read()) 
+0

Ty. Eso fue muy útil, y funciona. – Dazzmaster1

+0

@ Dazzmaster1 - genial - ¡de nada y buena suerte! –

+0

Un problema tan simple, como un mensaje de error inútil. –

Cuestiones relacionadas