|
SqlDataReader is used to retrieve data from the database. A SqlDataReader is also called as fast-forward firehouse-like streams of data. You can read from SqlDataReader objects in a forward-only sequential manner. Once you've read some data, you must save it because you will not be able to go back and read it again.
The forward only design of the SqlDataReader is what enables it to be fast. It doesn't have overhead associated with traversing the data or writing it back to the data source.
Creating SqlDataReader Object
The SqlDataReader object doesn't require any memory space to be initialized to it rather we have to assign the reference of the command object executereader method.
SqlDataReader rdr = cmd.ExecuteReader ();
The following example will show the use of SqlDataReader object to read the data from the database.
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns ="http://www.w3.org/1999/xhtml" >
<head runat ="server">
</head >
<body >
<form id ="form1" runat ="server">
<div><strong> ExecuteReader < br />
<br />
<br />
<asp : Button ID ="btnExecuteReader" runat ="server"
Text ="Execute Reader- Flat"
OnClick ="btnExecuteReader_Click" />
<br />
<br />
<asp:GridView ID ="grdVEmployees" runat ="server" AutoGenerateColumns ="False">
<Columns>
<asp:BoundField DataField ="FirstName" HeaderText ="First Name" />
<asp:BoundField DataField ="LastName" HeaderText ="Last Name"/>
<asp:BoundField DataField ="Title" HeaderText ="Title" />
<asp:BoundField DataField ="Address" HeaderText ="Address" />
</Columns>
</asp:GridView>
<br />
<br />
<asp:Button ID ="Button1" runat ="server" OnClick ="Button1_Click" Text ="Execute Reader- Filling GridView" Width ="206px" />< br />
</strong>
</div>
</form>
</body>
</html>
ExecuteScalar.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class ExecuteReader : System.Web.UI. Page
{
protected void Page_Load( object sender, EventArgs e)
{
}
protected void btnExecuteReader_Click( object sender, EventArgs e)
{
string strConn = "Data Source=localhost;Initial Catalog= Northwind; user Id=sa;Password =test" ;
string sqlQuery = "select * from categories" ;
SqlConnection conn = new SqlConnection (strConn);
SqlCommand cmd = new SqlCommand ();
SqlDataReader reader;
cmd.Connection = conn;
cmd.CommandText = sqlQuery;
cmd.CommandType = CommandType .Text;
conn.Open();
reader = cmd.ExecuteReader();
Response.Write( "<table border=1>" );
Response.Write( "<tr>" );
Response.Write( "<td>" );
Response.Write( "<b>Category Name</b>" );
Response.Write( "</td>" );
Response.Write( "<td>" );
Response.Write( "<b>Description</b>" );
Response.Write( "</td>" );
Response.Write( "</tr>" );
while (reader.Read()) {
Response.Write( "<tr>" );
Response.Write( "<td>" );
Response.Write(reader[ "CategoryName" ].ToString());
Response.Write( "</td>" );
Response.Write( "<td>" );
Response.Write(reader[ "Description" ].ToString());
Response.Write( "</td>" );
Response.Write( "</tr>" );
}
Response.Write( "</table>" );
reader.Close();
conn.Close();
}
protected void Button1_Click( object sender, EventArgs e)
{
string strConn = "Data Source=localhost;Initial Catalog= Northwind; user Id=sa;Password =test" ;
string sqlQuery = "select * from Employees" ;
SqlConnection conn = new SqlConnection (strConn);
SqlCommand cmd = new SqlCommand ();
SqlDataReader reader;
cmd.Connection = conn;
cmd.CommandText = sqlQuery;
cmd.CommandType = CommandType .Text;
conn.Open();
reader = cmd.ExecuteReader();
reader.Read();
grdVEmployees.DataSource = reader;
grdVEmployees.DataBind();
conn.Close();
}
}
Output:
|