Find Tables in a Dataset

The DataTableCollection in ADO.NET is a collection that holds zero or more DataTable objects within a DataSet. It provides a way to organize and manage multiple tables within a single DataSet.

To populate DataTables within a DataSet, the SqlDataAdapter object is commonly used. The DataAdapter acts as a bridge between the data source and the DataSet, allowing for the building and filling of each DataTable with data retrieved from the data source.

Number of tables present in a DataSet object

In certain situations, there may be a need to determine the number of tables present in a DataSet object. This can be achieved by accessing the Tables property of the DataSet. The Tables property provides access to the DataTableCollection, and by retrieving the Count property of the DataTableCollection, we can obtain the number of tables present

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""> <html xmlns=""> <head id="Head1" runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /> <br /> <asp:ListBox ID="ListBox1" runat="server"></asp:ListBox> <br /> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> </div> </form> </body> </html>
Full Source | C#
using System; using System.Data ; using System.Data.SqlClient ; using System.Configuration; public partial class _Default : System.Web.UI.Page { protected void Button1_Click(object sender, EventArgs e) { string connectionString = ConfigurationManager.ConnectionStrings["SQLDbConnection"].ToString(); SqlConnection connection = new SqlConnection(connectionString); SqlCommand command; DataSet ds = new DataSet (); SqlDataAdapter adapter = new SqlDataAdapter(); string firstSql = "select * from publishers"; string secondSql = "select * from authors"; try { connection.Open(); command = new SqlCommand(firstSql, connection); adapter.SelectCommand = command; adapter.Fill(ds, "First Table"); adapter.SelectCommand.CommandText = secondSql; adapter.Fill(ds, "Second Table"); foreach (DataTable tables in ds.Tables) { ListBox1.Items.Add(tables.TableName); } connection.Close(); } catch (Exception ex) { Label1.Text = "Error in execution " + ex.ToString(); } } }
Full Source | VB.NET
Imports System.Data Imports System.Data.SqlClient Imports System.Configuration Partial Class _Default Inherits System.Web.UI.Page Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim connectionString As String Dim connection As SqlConnection Dim command As SqlCommand Dim adapter As New SqlDataAdapter Dim tables As DataTable Dim ds As New DataSet connectionString = ConfigurationManager.ConnectionStrings("SQLDbConnection").ToString connection = New SqlConnection(connectionString) Dim firstSql As String = "select * from publishers" Dim secondSql As String = "select * from authors" Try connection.Open() command = New SqlCommand(firstSql, connection) adapter.SelectCommand = command adapter.Fill(ds, "First Table") adapter.SelectCommand.CommandText = secondSql adapter.Fill(ds, "Second Table") connection.Close() For Each tables In ds.Tables ListBox1.Items.Add(tables.TableName) Next Catch ex As Exception Label1.Text = "Error in execution " & ex.ToString End Try End Sub End Class


The DataTableCollection within a DataSet holds multiple DataTable objects. The SqlDataAdapter facilitates the population of DataTables within a DataSet. To determine the number of tables present in a DataSet, the Tables property of the DataSet is accessed, and the Count property of the DataTableCollection is retrieved. This count value provides the number of tables within the DataSet.