2011-10-18 11 views
5
string query = "select * from cfo_daily_trans_hist"; 
      try 
      { 
       using (SqlConnection connection = new SqlConnection(
         cnnString)) 
       { 
        SqlCommand command = new SqlCommand(query); 
        command.Connection = connection; 
        connection.Open(); 

        var result = command.ExecuteReader(); 
        DataTable datatable = new DataTable(); 
        datatable.Load(result); 
        connection.Close(); 
       } 
      } 

Así que la var result se crea a través de la ExecuteReader(); y HasRows es true, y se nota la cantidad correcta de campos. Sin embargo, el DataTable que creo a partir de él está vacío.problemas para cargar los datos de lectura de datos SQL en DataTable

¿Qué estoy haciendo mal? Estoy 99% seguro de que está obteniendo datos, pero no sé cómo encontrarlo a través del objeto SqlDataReader para estar seguro.

Gracias.

Respuesta

6

En lugar de SqlDataReader, utilice SqlDataAdapter.

SqlDataAdapter myAdapter = new SqlDataAdapter(command); 
myAdapter.Fill(datatable); 

Con un SqlDataAdapter, no es necesario llamar explícitamente SqlConnection.Open() y SqlConnection.Close(). Se maneja en el método Fill().

Cuestiones relacionadas