By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
443,973 Members | 1,854 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 443,973 IT Pros & Developers. It's quick & easy.

Getting Number Of Rows returned from query

P: n/a
I am trying to figure out how to go about retrieving the number of results
returned from my queries in SQL server from VB.NET without using a the
Select Count(*) query. The method that I was using was the following:

Take the query that I am executing, copy the query and turn it into a count
query, run the count query, then execute the original query.

The reason for this is so that I can implememt public paging on my website.
The problem with this method is that it is putting to much stress on my SQL
Server. Is there a way that I can find the number of rows returned. The way
I figure, if you use an SQLdatareader, it knows when it has reached the end
of the result list, therefore, you should be able to have some access to the
number of results without reading through each record.

--

Thanks,
Chris Tremblay
www.mtgfanatic.com, Inc.
Nov 18 '05 #1
Share this Question
Share on Google+
4 Replies


P: n/a
Chris,
You won't be able to do it via the SQLDataReader without reading through the
records first (in which case you can simply increment a counter, or use the
solution I briefly outline in #2)

1 - Consider using a datatable. You'll easily be able to access the number
of rows via datatable.Rows.Count. Additionally, if your SQL Server is
struggling, you'll be able to cache the datatable and reduce the load (I
realize that you are probably doing a search in which case the results
aren't very cache friendly, but hey , I thought I'd throw it out there
anyways).

2 - You can access an output parameter after doing a dr.close, which could
be the @@RowCount SQL server automatically generates. I'd go into more
details, but since you need to have the datareader closed, I'll assume that
you'll have already read through it and could simply have used a
counter...so this probably is a no go.

Karl

--
MY ASP.Net tutorials
http://www.openmymind.net/
"Chris Tremblay" <Cu*************@mtgfanatic.com> wrote in message
news:OR*************@TK2MSFTNGP11.phx.gbl...
I am trying to figure out how to go about retrieving the number of results
returned from my queries in SQL server from VB.NET without using a the
Select Count(*) query. The method that I was using was the following:

Take the query that I am executing, copy the query and turn it into a count query, run the count query, then execute the original query.

The reason for this is so that I can implememt public paging on my website. The problem with this method is that it is putting to much stress on my SQL Server. Is there a way that I can find the number of rows returned. The way I figure, if you use an SQLdatareader, it knows when it has reached the end of the result list, therefore, you should be able to have some access to the number of results without reading through each record.

--

Thanks,
Chris Tremblay
www.mtgfanatic.com, Inc.

Nov 18 '05 #2

P: n/a
You could use a counter variable like so...

SQLDataReader dr = new SQLDataReader();
int counter = 0;
// other database code goes here
while ( dr.Read() )
{
counter +=;
}
Response.Write ( "Number of records is: " + counter );

Hope this helps

"Chris Tremblay" wrote:
I am trying to figure out how to go about retrieving the number of results
returned from my queries in SQL server from VB.NET without using a the
Select Count(*) query. The method that I was using was the following:

Take the query that I am executing, copy the query and turn it into a count
query, run the count query, then execute the original query.

The reason for this is so that I can implememt public paging on my website.
The problem with this method is that it is putting to much stress on my SQL
Server. Is there a way that I can find the number of rows returned. The way
I figure, if you use an SQLdatareader, it knows when it has reached the end
of the result list, therefore, you should be able to have some access to the
number of results without reading through each record.

--

Thanks,
Chris Tremblay
www.mtgfanatic.com, Inc.

Nov 18 '05 #3

P: n/a
After you run the query, run the statement SELECT @@ROWCOUNT

--
data mining and .net team
http://www.visual-basic-data-mining.net/forum
"Chris Tremblay" <Cu*************@mtgfanatic.com> wrote in message
news:OR*************@TK2MSFTNGP11.phx.gbl...
I am trying to figure out how to go about retrieving the number of results
returned from my queries in SQL server from VB.NET without using a the
Select Count(*) query. The method that I was using was the following:

Take the query that I am executing, copy the query and turn it into a count query, run the count query, then execute the original query.

The reason for this is so that I can implememt public paging on my website. The problem with this method is that it is putting to much stress on my SQL Server. Is there a way that I can find the number of rows returned. The way I figure, if you use an SQLdatareader, it knows when it has reached the end of the result list, therefore, you should be able to have some access to the number of results without reading through each record.

--

Thanks,
Chris Tremblay
www.mtgfanatic.com, Inc.

Nov 18 '05 #4

P: n/a
Unless I missing something this won't work.

If he is doing paging, he is probably only returning in the datareader a
subset (1 page) of the total records.

Greg
"--dweezil" <dw*****@discussions.microsoft.com> wrote in message
news:2A**********************************@microsof t.com...
You could use a counter variable like so...

SQLDataReader dr = new SQLDataReader();
int counter = 0;
// other database code goes here
while ( dr.Read() )
{
counter +=;
}
Response.Write ( "Number of records is: " + counter );

Hope this helps

"Chris Tremblay" wrote:
I am trying to figure out how to go about retrieving the number of
results
returned from my queries in SQL server from VB.NET without using a the
Select Count(*) query. The method that I was using was the following:

Take the query that I am executing, copy the query and turn it into a
count
query, run the count query, then execute the original query.

The reason for this is so that I can implememt public paging on my
website.
The problem with this method is that it is putting to much stress on my
SQL
Server. Is there a way that I can find the number of rows returned. The
way
I figure, if you use an SQLdatareader, it knows when it has reached the
end
of the result list, therefore, you should be able to have some access to
the
number of results without reading through each record.

--

Thanks,
Chris Tremblay
www.mtgfanatic.com, Inc.

Nov 18 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.