5

I have an asp.net page that has several SqlDataSources defined that feed data into some graphs. The graph product does not handle "no data" gracefully, and throws an exception. I'd like this to handle the situation -- so I need to check whether the SqlDataSource returned data before rendering the graph (and if not, just post a message saying "No Data" or something).

Is there an easy way to check if the data source returned data, and do this if/then without a bunch of code behind?

Ryan Gates
  • 4,501
  • 6
  • 50
  • 90
julio
  • 6,630
  • 15
  • 60
  • 82

2 Answers2

14

The following is taken from devcurry, which is pretty much what you are looking for.

<asp:SqlDataSource ID="SqlDataSource1" runat="server"
    ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
    SelectCommand="SELECT [CustomerID], [CompanyName], [ContactName],
    [ContactTitle], [Address] FROM [Customers]"
    onselected="SqlDataSource1_Selected">
</asp:SqlDataSource>

And in code behind:

Protected Sub SqlDataSource1_Selected(ByVal sender As Object, ByVal e As SqlDataSourceStatusEventArgs)

    If e.AffectedRows < 1 Then

        ' perform action

    End If

End Sub
Jack Marchetti
  • 15,536
  • 14
  • 81
  • 117
  • thanks JackM-- is it possible to do the if statement in the page, not in the code behind? – julio Feb 09 '10 at 18:42
  • 1
    Keep in mind that AffectedRows also is 0 when no table is returned at all vs. just a table with zero rows. – Marc Apr 16 '10 at 18:39
3

try this http://www.devcurry.com/2009/02/how-do-you-check-if-sqldatasource.html

i hope if it helps you ..

Amr Elnashar
  • 1,739
  • 12
  • 33
  • 53
  • thanks for the link AmRosh-- I don't really understand how I would use that however. Could you explain a bit more? Thank you – julio Feb 09 '10 at 18:30