How do you check if SQLDataSource returns empty data

A user asked me a simple way to determine if the SQLDataSource returns empty data.

Here's a simple way to do so: Use the OnSelected event of the SQLDataSource


<asp:SqlDataSource ID="SqlDataSource1" runat="server"


ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"


SelectCommand="SELECT [CustomerID], [CompanyName], [ContactName],


[ContactTitle], [Address] FROM [Customers]"


onselected="SqlDataSource1_Selected">


</asp:SqlDataSource>




C#


protected void SqlDataSource1_Selected(object sender, SqlDataSourceStatusEventArgs e)


{


if (e.AffectedRows < 1)


{


// perform action


}


}




VB.NET


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


If e.AffectedRows < 1 Then


' perform action


End If


End Sub



Note: As pointed out by a reader, this tip will not work if SQLDataSource caching is enabled.

8 comments:

  1. Thank you for posting this solution. Really helpful.

    ReplyDelete
  2. It helps me too, thank you!

    ReplyDelete
  3. This is useful but it fails when SQLdatasource Caching is enabled, as 0 is returned.

    ReplyDelete
  4. Good point! I have added it to the post.

    ReplyDelete
  5. Another issue is that when using a DataReader, 0 is always returned as well.

    ReplyDelete
  6. Another issue is that if using a DataReader, 0 is always returned as well.

    ReplyDelete
  7. It's fantastic!!! Very, very thanks!!!

    ReplyDelete
  8. Great!!!!Thank you very much!!!

    ReplyDelete