web-dev-qa-db-fra.com

Transformer un SqlCommand avec des paramètres en un DataTable

J'adapte du code que quelqu'un d'autre a écrit et j'ai besoin de retourner un DataTable pour gagner du temps.

J'ai un code comme celui-ci:

using (SqlCommand command = new SqlCommand(query, conn))
{
      //add parameters and their values

      using (SqlDataReader dr = command.ExecuteReader())
      {
          return dr;
      }

Mais quelle est la meilleure façon de renvoyer une table de données?

42
cdub

Utilisez la méthode DataTable.Load pour remplir votre table avec les valeurs du SqlDataReader:

using (SqlDataReader dr = command.ExecuteReader())
{
    var tb = new DataTable();
    tb.Load(dr);
    return tb;
}
78

En utilisant un DBDataAdapter

extrait de la documentation ms

// Create the DbDataAdapter.
DbDataAdapter adapter = new DbDataAdapter();
adapter.SelectCommand = command;

// Fill the DataTable.
DataTable table = new DataTable();
adapter.Fill(table);
11
dmaij