DataReader
The DataReader provides a read-only, forward-only stream of results from a database query or stored procedure and we can use a DataReader if it is desirable,and possible, to keep the connection to the database open while data is being processed.A DataReader is a lightweight object which provides read-only,forward-only data in a very fast and efficient way . DataReader is efficient than using a DataAdapter but it is limited and Data access with DataReader is read-only, i.e, you cannot make any changes (update) to data and forward-only, i.e we cannot go back to the previous record which was accessed. DataReader requires the exclusive use of an active connection for the entire time if it is in existence and we instantiate a DataReader by calling a Command object's ExecuteReader command. When the DataReader is first returned it is positioned before the first record of the result set. To making the first record available we need to call the Read method and If a record is exist, the Read method moves the DataReader for next record and returns True and If a record is not available then the Read method returns False. we can use a While Loop to iterate through the records with the Read method.
Example of DataReader
using System;
using System.Data;
using System.Data.SqlClient;
public class empnamereader {
public static void Main() {
SqlConnection con = new SqlConnection(
@"server=(local)\mycomputer;database=emp;trusted_connection=yes"
);
string s = "SELECT * FROM emp";
con.Open();
sqlcommand cmd=new sqlcommand(s, con);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read()) {
Console.WriteLine(sdr["empname"] );
}
con.Close();
}
}
|
Data Retrieval Methods of the DataReader Object
Method | Field Type |
---|---|
GetBoolean() | Bool |
GetByte() | Byte |
GetChar() | Char |
GetDateTime() | DateTime |
GetDecimal() | Decimal |
GetDouble() | Double |
GetFloat() | Float |
GetGuid() | Guid |
GetInt16() | Int16 |
GetInt32() | Int32 |
GetInt64() | Int64 |
GetString() | String |
Differences between “DataSet” and “DataReader”.
DataSet | DataReader |
DataSet object can contain multiple rowsets from the same data source as well as from the relationships between them.
Dataset is a disconnected architecture.
Dataset can persist data.
A DataSet is well suited for data that needs to be retrieved from multiple tables.
DatsSet is slower than DataReader ,Due to overhead.
| DataReader provides forward-only and read-only access to data.
Datareader is connected architecture.
Datareader can not persist data.
It has live connection while reading data
Speed performance is better in DataReader
|
Limitations of the DataReader
There is not possible to sort, filter, or manipulate the data while using a DataReader, since it is read-only and forward-only.
No comments:
Post a Comment