Search code examples
asp.netvb.netsqldatasource

how do I check that a SqlDataSource returned data?


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?


Solution

  • 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