Four key parts of ADO.NET are DataReader, DataSet, DataAdapter, and DataTable. I’ll describe the distinctions between a DataReader, DataSet, DataAdapter, and DataTable in this blog post using C# code examples.
DataReader
DataReader is used to read data from databases, and its connection-oriented architecture is read-only while fetching data from databases. When compared to a dataset, a data reader will retrieve the data quite quickly. Typically, we’ll connect data to a datareader using an ExecuteReader object.
The following code must be written in order to link DataReader data to the GridView:
protected void BindGridview() {
using(SqlConnection conn = new SqlConnection("Data Source=abc;Integrated Security=true;Initial Catalog=Test")) {
con.Open();
SqlCommand cmd = new SqlCommand("Select UserName, First Name,LastName,Location FROM Users", conn);
SqlDataReader sdr = cmd.ExecuteReader();
gvUserInfo.DataSource = sdr;
gvUserInfo.DataBind();
conn.Close();
}
}
- Holds the connection open until you are finished (don’t forget to close it!).
- Can typically only be iterated over once
- Is not as useful for updating back to the database
DataSet
DataSets are a collection of DataTables and relations between tables and have a disconnected orient architecture, which means they may be used without the necessity for active connections. It is used to store numerous data tables. Table-based data selection, table-based view creation, and child rows over relations are all options. Additionally, DataSet offers you a variety of functions including loading and saving XML data.
protected void BindGridview() {
SqlConnection conn = new SqlConnection("Data Source=abc;Integrated Security=true;Initial Catalog=Test");
conn.Open();
SqlCommand cmd = new SqlCommand("Select UserName, First Name,LastName,Location FROM Users", conn);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
sda.Fill(ds);
gvUserInfo.DataSource = ds;
gvUserInfo.DataBind();
}
DataAdapter
Between the DataSet and the database, the DataAdapter will serve as a bridge. The data is read from the database and bound to the dataset using this dataadapter object. A unconnected oriented architecture is Dataadapter. See how to use DataAdapter in the sample code below:
protected void BindGridview() {
SqlConnection con = new SqlConnection("Data Source=abc;Integrated Security=true;Initial Catalog=Test");
conn.Open();
SqlCommand cmd = new SqlCommand("Select UserName, First Name,LastName,Location FROM Users", conn);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
sda.Fill(ds);
gvUserInfo.DataSource = ds;
gvUserInfo.DataBind();
}
- Lets you close the connection as soon it’s done loading data, and may even close it for you automatically
- All of the results are available in memory
- You can iterate over it as many times as you need, or even look up a specific record by index
- Has some built-in faculties for updating back to the database.
DataTable
A single database table is represented by a DataTable. It has columns and rows. Datasets and datatables are quite similar; a dataset is simply a collection of datatables.
protected void BindGridview()
{
SqlConnection con = new SqlConnection("Data Source=abc;Integrated Security=true;Initial Catalog=Test");
conn.Open();
SqlCommand cmd = new SqlCommand("Select UserName, First Name,LastName,Location FROM Users", conn);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
gridview1.DataSource = dt;
gvidview1.DataBind();
}
The post Difference Between DataReader, DataSet, DataAdapter and DataTable in C# appeared first on The Code Hubs.