Filling a DataTable or DataSet the Quick Way

In .NET 1.x filling a DataSet or a DataTable meant quite some work. You needed to create a Connection object, a DataAdapter and optionally a Command object. Then you had to call the Fill method on the DataAdapter and pass it a newly created DataSet or DataTable.

In .NET 2.0, this code model has been simplified, thanks to the Load method on the DataTable and DataSet classes that takes an IDataReader as a parameter.

The following code snippet shows you how to fill a DataTable from an SqlDataReader with only a few lines of code.

private DataTable GetDataTable()
{
  string sql = "SELECT Id, Description FROM MyTable";
  using (SqlConnection myConnection = new SqlConnection(connectionString))
  {
    using (SqlCommand myCommand = new SqlCommand(sql, myConnection))
    {
      myConnection.Open();
      using (SqlDataReader myReader = myCommand.ExecuteReader())
      {
        DataTable myTable = new DataTable();
        myTable.Load(myReader);
        myConnection.Close();
        return myTable;
      }
    }
  }
}

This code executes a DataReader (a SqlDataReader in this case, but you can also use other types, like an OleDbDataReader). It then passes this open reader into the Load method of the DataTable that takes care of copying the data from the reader into the DataTable.

A quick, and easy way to fill a DataTable....


Where to Next?

Wonder where to go next? You can post a comment on this article.

Doc ID 406
Full URL https://imar.spaanjaars.com/406/filling-a-datatable-or-dataset-the-quick-way
Short cut https://imar.spaanjaars.com/406/
Written by Imar Spaanjaars
Date Posted 09/19/2006 22:29
Listened to when writing Glass (Genetic Records Demo Session - Eden Studios, London, March 1979) by Joy Division (Track 10 from the album: Heart And Soul (CD 3 - Studio Rarities & Unreleased))

Comments

Talk Back! Comment on Imar.Spaanjaars.Com

I am interested in what you have to say about this article. Feel free to post any comments, remarks or questions you may have about this article. The Talk Back feature is not meant for technical questions that are not directly related to this article. So, a post like "Hey, can you tell me how I can upload files to a MySQL database in PHP?" is likely to be removed. Also spam and unrealistic job offers will be deleted immediately.

When you post a comment, you have to provide your name and the comment. Your e-mail address is optional and you only need to provide it if you want me to contact you. It will not be displayed along with your comment. I got sick and tired of the comment spam I was receiving, so I have protected this page with a simple calculation exercise. This means that if you want to leave a comment, you'll need to complete the calculation before you hit the Post Comment button.

If you want to object to a comment made by another visitor, be sure to contact me and I'll look into it ASAP. Don't forget to mention the page link, or the Doc ID of the document.

(Plain text only; no HTML or code that looks like HTML or XML. In other words, don't use < and >. Also no links allowed.