2009-05-13 6 views
1

J'essaye de tirer des données en utilisant un SqlDataReader, dont une colonne est dans datetime. Je voudrais faire quelque chose comme ceciEst-ce que SqlDataReader stocke tout en tant que chaîne?

SqlCommand command = new SqlCommand("SELECT * FROM table", connection); //connection is defined earlier 
     SqlDataReader data = command.ExecuteReader(); 
     while(data.Read()){ 
      DateTime birthday = data["Birth"]; 
      list.Add(birthday); 
     } 
    } 

Puis-je faire ceci? Ou SqlDataReader retourne-t-il des chaînes, auquel cas je devrais créer un nouvel objet DateTime en utilisant cette chaîne?

Merci, S

Répondre

7

SqlDataReader renvoie les données sous forme d'objets fortement typés - il suffit d'appeler la bonne méthode, par exemple:

data.GetDateTime (ordinal)

4

Vous voulez:

DateTime birthday = data.GetDateTime(data.GetOrdinal("Birth")); 

SqlDataReader a un whole bunch de méthodes Get *() fortement typées.

+0

La méthode GetDateTime prend uniquement un nom ordinal, pas un nom de colonne, donc il doit être data.GetDateTime (data.GetOrdinal ("Birth")) – LukeH

+0

En effet, vous avez raison! Fixer maintenant. –

Questions connexes