Connecting Tech Pros Worldwide Forums | Help | Site Map

Getting Number Of Rows returned from query

Chris Tremblay
Guest
 
Posts: n/a
#1: Nov 18 '05
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.



Karl
Guest
 
Posts: n/a
#2: Nov 18 '05

re: Getting Number Of Rows returned from query


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" <CustomerService@mtgfanatic.com> wrote in message
news:ORwbKfglEHA.592@TK2MSFTNGP11.phx.gbl...[color=blue]
> 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[/color]
count[color=blue]
> query, run the count query, then execute the original query.
>
> The reason for this is so that I can implememt public paging on my[/color]
website.[color=blue]
> The problem with this method is that it is putting to much stress on my[/color]
SQL[color=blue]
> Server. Is there a way that I can find the number of rows returned. The[/color]
way[color=blue]
> I figure, if you use an SQLdatareader, it knows when it has reached the[/color]
end[color=blue]
> of the result list, therefore, you should be able to have some access to[/color]
the[color=blue]
> number of results without reading through each record.
>
> --
>
> Thanks,
> Chris Tremblay
> www.mtgfanatic.com, Inc.
>
>[/color]


--dweezil
Guest
 
Posts: n/a
#3: Nov 18 '05

re: Getting Number Of Rows returned from query


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:
[color=blue]
> 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.
>
>
>[/color]
http://www.visual-basic-data-mining.net/forum
Guest
 
Posts: n/a
#4: Nov 18 '05

re: Getting Number Of Rows returned from query


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" <CustomerService@mtgfanatic.com> wrote in message
news:ORwbKfglEHA.592@TK2MSFTNGP11.phx.gbl...[color=blue]
> 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[/color]
count[color=blue]
> query, run the count query, then execute the original query.
>
> The reason for this is so that I can implememt public paging on my[/color]
website.[color=blue]
> The problem with this method is that it is putting to much stress on my[/color]
SQL[color=blue]
> Server. Is there a way that I can find the number of rows returned. The[/color]
way[color=blue]
> I figure, if you use an SQLdatareader, it knows when it has reached the[/color]
end[color=blue]
> of the result list, therefore, you should be able to have some access to[/color]
the[color=blue]
> number of results without reading through each record.
>
> --
>
> Thanks,
> Chris Tremblay
> www.mtgfanatic.com, Inc.
>
>[/color]


Greg Burns
Guest
 
Posts: n/a
#5: Nov 18 '05

re: Getting Number Of Rows returned from query


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" <dweezil@discussions.microsoft.com> wrote in message
news:2A96F57B-0AFE-44C3-AB67-329297062D28@microsoft.com...[color=blue]
> 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:
>[color=green]
>> 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.
>>
>>
>>[/color][/color]


Closed Thread