private SqlConnection _connection;
private SqlCommand _command;
private SqlDataReader _reader;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.PreRenderComplete += new EventHandler(Page_PreRenderComplete);
Page.AddOnPreRenderCompleteAsync(new BeginEventHandler(BeginAsyncOperation), new EndEventHandler(EndAsyncOperation));
}
}
IAsyncResult BeginAsyncOperation(object sender, EventArgs e, AsyncCallback cb, object state)
{
string connectionstring = "server=localhost;uid=sa;pwd=1234;database=Pubs;Asynchronous Processing=true;";
_connection = new SqlConnection(connectionstring);
_connection.Open();
_command = new SqlCommand("select title_id,title,price from titles", _connection);
return _command.BeginExecuteReader(cb, state);
}
void EndAsyncOperation(IAsyncResult ar)
{
_reader = _command.EndExecuteReader(ar);
}
private void Page_PreRenderComplete(object sender, EventArgs e)
{
while (_reader.Read())
this.Label1.Text = this.Label1.Text + _reader.GetValue(1) + "<br>";
}
public override void Dispose()
{
if (_connection != null)
_connection.Close();
base.Dispose();
}
}