TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
Dharam
NA
185
636
Difference between DataSet and DataReader.
Feb 20 2021 11:39 AM
DataReader, DataSet, DataAdapter and DataTable are four major components of ADO.NET. In this blog, I will explain the difference between a DataReader, DataSet, DataAdapter and DataTable with code examples in C#.DataReader DataReader is used to read the data from database and it is a read and forward only connection oriented architecture during fetch the data from database. DataReader will fetch the data very fast when compared with dataset. Generally we will use ExecuteReader object to bind data to datareader. To bind DataReader data to GridView we need to write the code like as shown below:
Public
void
BindempGridview()
{
using
(SqlConnection conn =
new
SqlConnection(
"Data Source=yourDatasource;Integrated Security=true;Initial Catalog=yourLocalDBName"
))
{
con.Open();
SqlCommand cmd =
new
SqlCommand(
"Select EmpUserName, EmpFirst
Emp
Name,
Emp
LastName,
Emp
Location FROM Emoloyee"
, conn);SqlDataReader sdr = cmd.ExecuteReader();
gvEmp.DataSource = sdr;
gvEmp
.DataBind();conn.Close();
}
}
Note:
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:
DataSet is a disconnected orient architecture that means there is no need of active connections during work with datasets and it is a collection of DataTables and relations between tables. It is used to hold multiple tables with data. You can select data form tables, create views based on table and ask child rows over relations. Also DataSet provides you with rich features like saving data as XML and loading XML data.
Public
void
BindGridviewemp() {
SqlConnection conn =
new
SqlConnection(
"Data Source=yourdatasourcename;Integrated Security=true;Initial Catalog=Test"
);
conn.Open();
SqlCommand cmd =
new
SqlCommand(
"Select EmpUserName, EmpFirst EmpName, EmpLastName, EmpLocation FROM Employee"
, conn);
SqlDataAdapter sda =
new
SqlDataAdapter(cmd);
DataSet ds =
new
DataSet();
da.Fill(ds);
gvUserInfo.DataSource = ds;
gvUserInfo.DataBind();
}
DataAdapter
DataAdapter will acts as a Bridge between DataSet and database. This dataadapter object is used to read the data from database and bind that data to dataset. Dataadapter is a disconnected oriented architecture. Check below sample code to see how to use DataAdapter in code:
Public
void
BindGEmpview() {
SqlConnection con =
new
SqlConnection(
"Data Source=YourDatasource;Integrated Security=true;Initial Catalog=yourDatabasename"
);
conn.Open();
SqlCommand cmd =
new
SqlCommand(
"Select EmpUserName, EmpFirst EmpName,EmpLastName,EmpLocation FROM Employee"
, conn);
SqlDataAdapter sda =
new
SqlDataAdapter(cmd);
DataSet ds =
new
DataSet();
da.Fill(ds);
GridEmp.DataSource = ds;
GridEmp.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
DataTable represents a single table in the database. It has rows and columns. There is no much difference between dataset and datatable, dataset is simply the collection of datatables.
Public
void
BindEmpGridV() {
SqlConnection con =
new
SqlConnection(
"Data Source=yourdatabaseName;Integrated Security=true;Initial Catalog=yourdatabase"
);
conn.Open();
SqlCommand cmd =
new
SqlCommand(
"Select EmpUserName, EmpFirst EmpName,EmpLastName,EmpLocation FROM Employee"
, conn);
SqlDataAdapter sda =
new
SqlDataAdapter(cmd);
DataTable dt =
new
DataTable();
da.Fill(dt);
EmpGridV.DataSource = dt;
EmpGridV.DataBind();
}
Reply
Answers (
4
)
How to create cascading dropdownlist in asp.net mvc
Consume Api using RestSharp