How to get row count in SqlDataSource

P

Peter

ASP.NET 3.5

I'm trying to get a row count from a Gridviews sqldatasource after
filtering, but the count returns the value before filtering.

How do I get the number of records SqlDataSource has after filtering?


Peter


Thank You.
 
A

Allen Chen [MSFT]

Hi Peter,

If you want to get the row count after filtering you have following options:

" If paging is not enabled you can get the row count in the PreRender event
of the GridView:
protected void GridView1_PreRender(object sender, EventArgs e)
{
int rowcount=this.GridView1.Rows.Count;
}

" If paging is enabled, you can get approximate row count by:
this.GridView1.PageCount*this.GridView1.PageSize

" If you need accurate value you can try this:
protected void GridView1_PreRender(object sender, EventArgs e)
{
DataView dv =
(DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
dv.RowFilter = SqlDataSource1.FilterExpression;
int rowcount=dv.Count;
}

Related post:
http://forums.asp.net/t/1364341.aspx

Please have a try and feel free to ask if you have additional questions.

Regards,
Allen Chen
Microsoft Online Support

Delighting our customers is our #1 priority. We welcome your comments and
suggestions about how we can improve the support we provide to you. Please
feel free to let my manager know what you think of the level of service
provided. You can send feedback directly to my manager at:
(e-mail address removed).

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/en-us/subscriptions/aa948868.aspx#notifications.

Note: MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 2 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions. Issues of this
nature are best handled working with a dedicated Microsoft Support Engineer
by contacting Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/en-us/subscriptions/aa948874.aspx
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
 
P

Peter

Thanks for your help!

But I am getting the following error

An exception of type 'System.Data.SyntaxErrorException' occurred in
System.Data.dll but was not handled in user code

Additional information: Cannot interpret token '{' at position 14.

the error occurs on this line:
dv.RowFilter = SqlDataSource1.FilterExpression; // where FilterExpression
= "FabricNumber={0}"
 
S

Stan

Thanks for your help!

But I am getting the following error

An exception of type 'System.Data.SyntaxErrorException' occurred in
System.Data.dll but was not handled in user code

Additional information: Cannot interpret token '{' at position 14.

the error occurs on this line:
dv.RowFilter = SqlDataSource1.FilterExpression;   // where FilterExpression
= "FabricNumber={0}"

The syntax rules for DataView.RowFilter are not the same as for
SqlDataSource.FilterExpression

The latter supports parametized expressions wheras the former does
not.

If filtering is always by FabricNumber then try doing this:

int FabricNumber = (int)SqlDataSource1.SelectParameters[0].Value;

dv.RowFilter = "FabricNumber = " + FabricNumber.ToString();
 
A

Allen Chen [MSFT]

Hi Peter,

What Stan said is correct. If it still doesn't work please feel free to
update here. I'll do my best to follow up.

Regards,
Allen Chen
Microsoft Online Community Support
 
P

Peter

Thank You

This is what I needed!


Thanks for your help!

But I am getting the following error

An exception of type 'System.Data.SyntaxErrorException' occurred in
System.Data.dll but was not handled in user code

Additional information: Cannot interpret token '{' at position 14.

the error occurs on this line:
dv.RowFilter = SqlDataSource1.FilterExpression; // where FilterExpression
= "FabricNumber={0}"

The syntax rules for DataView.RowFilter are not the same as for
SqlDataSource.FilterExpression

The latter supports parametized expressions wheras the former does
not.

If filtering is always by FabricNumber then try doing this:

int FabricNumber = (int)SqlDataSource1.SelectParameters[0].Value;

dv.RowFilter = "FabricNumber = " + FabricNumber.ToString();
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top