<%@ Page %>
Obtaining No. Of Record Returned From DataReader
DataReader allows forwardonly and readonly data access. Many times we need to know the number of records returned after firing a SELECT query. DataReader do not offer this functionality. We can, however, use some trick to quickly and efficiently get this data. This How To is intended to show you just that.
Executing Batch Queries
The Command object can be used to fire batch of queries instead of single query. In this case we can execute action as well as select queries together. We can then call ExecuteReader method of the Command object. There can be multiple result sets obtained and those can be navigated using NextResult method of DataReader. Following code snippet shows how it works:
Dim cnn As New SqlConnection(Global.GetConnectionString)
Dim cmd As New SqlCommand()
Dim dr As SqlDataReader
cmd.CommandText = "select count(*) from employees;
select * from employees"
cmd.Connection = cnn
dr = cmd.ExecuteReader
Label1.Text = dr.GetValue(0)
DataGrid1.DataSource = dr
Here, we have first declared objects of connection, command and DataReader. Note how the CommandText property of the command object is set to two SELECT queries separated by a ";". Next, the Command is executed and the output is assigned to DataReader. The DataReader contains two result sets matching our queries. First query gives us the number of records. The NextResult method shifts to the next result set and we can bind the actual data with the DataGrid.
I hope you must have find the article useful. See you soon.