Skip to content
-
Subscribe to our newsletter & never miss our best posts. Subscribe Now!
Technical Personnal Blog

Technical Personnal Blog

Technical Personnal Blog

Technical Personnal Blog

  • Tech
  • Blog
  • Open Source
  • VEGAS
  • CARD
  • Favorite Link
  • Shop
  • Cart
  • Checkout
  • My account
  • Tech
  • Blog
  • Open Source
  • VEGAS
  • CARD
  • Favorite Link
  • Shop
  • Cart
  • Checkout
  • My account
Close

Search

  • https://www.facebook.com/
  • https://twitter.com/
  • https://t.me/
  • https://www.instagram.com/
  • https://youtube.com/
Subscribe
BlogTech

The Tables of a Data Set

By techsupport
May 21, 2015 8 Min Read
Comments Off on The Tables of a Data Set

 

Home

The Tables of a Data Set

 

Introduction

The tables that belong to a DataSet object are stored in a property called Tables. TheDataSet.Tables property is an object of type DataTableCollection. TheDataTableCollection is a class that provides everything you need to add, locate, or manage any table that belongs to a DataSet object.

Accessing a Table in the Collection

The DataTableCollection class implements the GetEnumerator() method of theIEnumerable interface. This allows you to use a foreach loop to visit each member table of the collection. Once you have reached a table in the collection, you can access any of its public properties or methods. Here is an example of applying foreach on a collection of tables of adata set to list their names:

using System;
using System.Data;

public class VideoCollection
{
    public DataTable tblActors;
    public DataTable tblFormats;
    public DataTable tblRatings;
    public DataTable tblDirectors;
    public DataTable tblVideoCategories;
    public DataSet   dsVideoCollection;

    public VideoCollection()
    {
        dsVideoCollection = new DataSet("Videos");

        tblDirectors = new DataTable();
        tblDirectors.TableName = "Directors";
        dsVideoCollection.Tables.Add(tblDirectors);

        tblVideoCategories = new DataTable("Categories");
        dsVideoCollection.Tables.Add(tblVideoCategories);

        tblRatings = dsVideoCollection.Tables.Add("Ratings");

        tblActors = dsVideoCollection.Tables.Add("Actors");
        tblFormats = dsVideoCollection.Tables.Add("Formats");
    }

    public void ShowTables()
    {
        DataTableCollection tables = this.dsVideoCollection.Tables;

        foreach (DataTable tbl in tables)
            Console.WriteLine("Table Name: {0}", tbl.TableName);
    }
}

public static class Program
{
    static int Main(string[] args)
    {
        VideoCollection coll = new VideoCollection();

        coll.ShowTables();
        Console.WriteLine();
        return 0;
    }
}

This would produce:

Table Name: Directors
Table Name: Categories
Table Name: Ratings
Table Name: Actors
Table Name: Formats

Press any key to continue . . .

You can use this approach to identity a table and then perform a desired operation on it.

Adding a New Table to a Collection

Using the DataSet.Tables property, to add a created table to a DataSet object, call one of theAdd() methods of the DataTableCollection class. The first version of this method has the following syntax:

public virtual DataTable Add();

This method can be used to add a new table that uses the default name. Here is an example:

using System;
using System.Data;

public class VideoCollection
{
    public DataTable tblRatings;
    public DataTable tblDirectors;
    public DataTable tblVideoCategories;
    public DataSet dsVideoCollection;

    public VideoCollection()
    {
        dsVideoCollection = new DataSet("Videos");

        tblDirectors = new DataTable();
        tblDirectors.TableName = "Directors";
        tblVideoCategories = new DataTable("Categories");

        tblRatings = dsVideoCollection.Tables.Add();

    }
}

If this is the first table added to the collection, it would be named Table1. The second version of the DataTableCollection.Add() method uses the following syntax:

public virtual void Add(DataTable table);

This version allows you to add a predefined or declared DataTable object. Here is an example:

using System;
using System.Data;

public class VideoCollection
{
    public DataTable tblRatings;
    public DataTable tblDirectors;
    public DataTable tblVideoCategories;
    public DataSet   dsVideoCollection;

    public VideoCollection()
    {
        dsVideoCollection = new DataSet("Videos");

        tblDirectors = new DataTable();
        tblDirectors.TableName = "Directors";
        dsVideoCollection.Tables.Add(tblDirectors);

        tblVideoCategories = new DataTable("Categories");
        dsVideoCollection.Tables.Add(tblVideoCategories);

        tblRatings = dsVideoCollection.Tables.Add();
    }
}

This second version of the method requires that you create a DataTable object first and the table probably has a name. Alternatively, if you want to add a table using its formal name, you can use the third version of this method. Its syntax is:

public virtual DataTable Add(string name);

This version works like the first except that, instead of the default name (such as Table1, Table2, etc), it lets you specify the desired name of the new table. Here are examples:

using System;
using System.Data;

public class VideoCollection
{
    public DataTable tblActors;
    public DataTable tblFormats;
    public DataTable tblRatings;
    public DataTable tblDirectors;
    public DataTable tblVideoCategories;
    public DataSet   dsVideoCollection;

    public VideoCollection()
    {
        dsVideoCollection = new DataSet("Videos");

        tblDirectors = new DataTable();
        tblDirectors.TableName = "Directors";
        dsVideoCollection.Tables.Add(tblDirectors);

        tblVideoCategories = new DataTable("Categories");
        dsVideoCollection.Tables.Add(tblVideoCategories);

        tblRatings = dsVideoCollection.Tables.Add();

        tblActors = dsVideoCollection.Tables.Add("Actors");
        tblFormats = dsVideoCollection.Tables.Add("Formats");
    }
}

Creating a Range of Tables

Instead of adding one table at a time, you can create a list of tables and then add it to theDataSet.Tables collection. To support this operation, the DataTableCollection is equipped with the AddRange() method. Its syntax is:

public void AddRange(DataTable[] tables);

This method expects an array of DataTable objects as argument. Here is an example:

using System;
using System.Data;

public class BookCollection
{
    private void Create()
    {
        DataSet dsBooks = new DataSet("Book");

        DataTable dtCategories = new DataTable("Categorie");
        DataTable dtAuthors = new DataTable("Author");
        DataTable dtPublishers = new DataTable("Publisher");
        DataTable dtBooks = new DataTable("Book");

        DataTable[] colTables = { dtCategories, dtAuthors, dtPublishers, dtBooks };
        dsBooks.Tables.AddRange(colTables);
    }
}

Practical Learning Practical Learning: Creating Tables

  • To create tables, change the file as follows:
    using System;
    using System.Data;
    
    namespace VideoCollection1
    {
        public class Video
        {
            public DataSet dsVideoCollection;
    
            public DataTable tblVideoCategories;
            public DataTable tblDirectors;
            public DataTable tblRatings;
            public DataTable tblActors;
            public DataTable tblFormats;
    
            public Video()
            {
                dsVideoCollection = new DataSet("Videos");
    
                tblDirectors = new DataTable();
                tblDirectors.TableName = "Directors";
                dsVideoCollection.Tables.Add(tblDirectors);
    
                tblVideoCategories = new DataTable("Categories");
                dsVideoCollection.Tables.Add(tblVideoCategories);
    
                tblRatings = dsVideoCollection.Tables.Add("Ratings");
    
                tblActors = dsVideoCollection.Tables.Add("Actors");
                tblFormats = dsVideoCollection.Tables.Add("Formats");
            }
        }
    }

Locating a Table in a Collection

After creating the tables that are part of an application, before performing any operation on a table, you must first retrieve its reference. This can be done by locating the particular desired table from the collection.

To locate a table in the DataSet.Tables collection, the DataTableCollection class is equipped with the Item property in two versions. To locate a table using its name, use the following version of this property:

public DataTable this[string name] {get;}

To use this property, enter the object name of the table in the square brackets of theDataTableCollection[] property. Here is an example:

using System;
using System.Data;

public class VideoCollection
{
    public DataTable tblActors;
    public DataTable tblFormats;
    public DataTable tblRatings;
    public DataTable tblDirectors;
    public DataTable tblVideoCategories;
    public DataSet   dsVideoCollection;

    public VideoCollection()
    {
        dsVideoCollection = new DataSet("Videos");

        tblDirectors = new DataTable();
        tblDirectors.TableName = "Directors";
        dsVideoCollection.Tables.Add(tblDirectors);

        tblVideoCategories = new DataTable("Categories");
        dsVideoCollection.Tables.Add(tblVideoCategories);

        tblRatings = dsVideoCollection.Tables.Add();

        tblActors = dsVideoCollection.Tables.Add("Actors");
        tblFormats = dsVideoCollection.Tables.Add("Formats");
    }
}

public static class Program
{
    static int Main(string[] args)
    {
        VideoCollection coll = new VideoCollection();

        DataTable tbl = coll.dsVideoCollection.Tables["Directors"];

        Console.WriteLine("Table Name: {0}", tbl.TableName);
        return 0;
    }
}

This would produce:

Table Name: Directors
Press any key to continue . . .

Instead of locating a table by its name, you can use its index from the collection. To do this, you can use the second version of the DataTableCollection[] property. Its syntax is:

public DataTable this[int index] {get;}

This property expects as argument the index of the table in the DataSet.Tables collection. Here is an example:

using System;
using System.Data;

public class VideoCollection
{
    public DataTable tblActors;
    public DataTable tblFormats;
    public DataTable tblRatings;
    public DataTable tblDirectors;
    public DataTable tblVideoCategories;
    public DataSet   dsVideoCollection;

    public VideoCollection()
    {
        dsVideoCollection = new DataSet("Videos");

        tblDirectors = new DataTable();
        tblDirectors.TableName = "Directors";
        dsVideoCollection.Tables.Add(tblDirectors);

        tblVideoCategories = new DataTable("Categories");
        dsVideoCollection.Tables.Add(tblVideoCategories);

        tblRatings = dsVideoCollection.Tables.Add();

        tblActors = dsVideoCollection.Tables.Add("Actors");
        tblFormats = dsVideoCollection.Tables.Add("Formats");
    }
}

public static class Program
{
    static int Main(string[] args)
    {
        VideoCollection coll = new VideoCollection();

        DataTable tbl = coll.dsVideoCollection.Tables[3];

        Console.WriteLine("Table Name: {0}", tbl.TableName);
        return 0;
    }
}

This would produce:

Table Name: Actors
Press any key to continue . . .

If you provide an index below or beyond the number of tables in the set, the compiler would throw an IndexOutOfRangeException exception. To avoid this, you can request the index of the table. To do this, call the DataTableCollection.IndexOf() method. It is overloaded in two versions. One of the versions takes as argument the variable name of the table. The syntax of this method is:

public virtual int IndexOf(DataTable table);

Here is an example of calling this method:

using System;
using System.Data;

public class VideoCollection
{
    public DataTable tblActors;
    public DataTable tblFormats;
    public DataTable tblRatings;
    public DataTable tblDirectors;
    public DataTable tblVideoCategories;
    public DataSet   dsVideoCollection;

    public VideoCollection()
    {
        dsVideoCollection = new DataSet("Videos");

        tblDirectors = new DataTable();
        tblDirectors.TableName = "Directors";
        dsVideoCollection.Tables.Add(tblDirectors);

        tblVideoCategories = new DataTable("Categories");
        dsVideoCollection.Tables.Add(tblVideoCategories);

        tblRatings = dsVideoCollection.Tables.Add();

        tblActors = dsVideoCollection.Tables.Add("Actors");
        tblFormats = dsVideoCollection.Tables.Add("Formats");
    }

    public void LocateTable()
    {
        int index = dsVideoCollection.Tables.IndexOf(tblActors);
        Console.WriteLine("Table Index: {0}", index.ToString());
    }
}

public static class Program
{
    static int Main(string[] args)
    {
        VideoCollection coll = new VideoCollection();

        coll.LocateTable();
        return 0;
    }
}

This would produce:

Table Index: 3
Press any key to continue . . .

Instead of using the variable name of the table, you can locate it using its formal name. To do this, call the following version of the IndexOf() method:

public virtual int IndexOf(string tableName);

When the tables of a DataSet have been created, you can get their list as an array using theDataTableCollection.List property. This property returns an ArrayList type of list.

Instead of directly locating a table, you may be interested to know whether a particular table exists in the DataSet.Tables collection. To check this, you can call theDataTableCollection.Contains() method. Its syntax is:

public bool Contains(string name);

This method expects the object name of a table as argument. If the table exists in the collection, this method returns true. Here is an example:

using System;
using System.Data;

public class VideoCollection
{
    public DataTable tblActors;
    public DataTable tblFormats;
    public DataTable tblRatings;
    public DataTable tblDirectors;
    public DataTable tblVideoCategories;
    public DataSet   dsVideoCollection;

    public VideoCollection()
    {
        dsVideoCollection = new DataSet("Videos");

        tblDirectors = new DataTable();
        tblDirectors.TableName = "Directors";
        dsVideoCollection.Tables.Add(tblDirectors);

        tblVideoCategories = new DataTable("Categories");
        dsVideoCollection.Tables.Add(tblVideoCategories);

        tblRatings = dsVideoCollection.Tables.Add();

        tblActors = dsVideoCollection.Tables.Add("Actors");
        tblFormats = dsVideoCollection.Tables.Add("Formats");
    }
}

public static class Program
{
    static int Main(string[] args)
    {
        VideoCollection coll = new VideoCollection();

        if( coll.dsVideoCollection.Tables.Contains("Actors") )
            Console.WriteLine("The Actors table exists");
        else
            Console.WriteLine("The Actors table does not exist");

        Console.WriteLine();

        if (coll.dsVideoCollection.Tables.Contains("VideoTypes"))
            Console.WriteLine("The VideoTypes table exists");
        else
            Console.WriteLine("The VideoTypes table does not exist");

        Console.WriteLine();
        return 0;
    }
}

This would produce:

The Actors table exists

The VideoTypes table does not exist

Press any key to continue . . .

Practical Learning Practical Learning: Showing Tables

  1. To show a list of the tables in the DataSet object, change the Video.cs file as follows:
    using System;
    using System.Data;
    
    namespace VideoCollection1
    {
        public class Video
        {
            public DataSet dsVideoCollection;
    
            public DataTable tblVideoCategories;
            public DataTable tblDirectors;
            public DataTable tblRatings;
            public DataTable tblActors;
            public DataTable tblFormats;
    
            public Video()
            {
                dsVideoCollection = new DataSet("Videos");
    
                tblDirectors = new DataTable();
                tblDirectors.TableName = "Directors";
                dsVideoCollection.Tables.Add(tblDirectors);
    
                tblVideoCategories = new DataTable("Categories");
                dsVideoCollection.Tables.Add(tblVideoCategories);
    
                tblRatings = dsVideoCollection.Tables.Add("Ratings");
    
                tblActors = dsVideoCollection.Tables.Add("Actors");
                tblFormats = dsVideoCollection.Tables.Add("Formats");
            }
    
            public void ShowTables()
            {
                int i = 1;
    
                Console.WriteLine("Video Collection - Tables");
                foreach (DataTable tbl in dsVideoCollection.Tables)
                    Console.WriteLine("{0}. {1}", i++, tbl.TableName);
            }
        }
    }
  2. Access the Program.cs file and change it as follows:
    using System;
    
    namespace VideoCollection1
    {
        class Program
        {
            static int Main(string[] args)
            {
                Video vdo = new Video();
    
                vdo.ShowTables();
                Console.WriteLine();
    
                return 0;
            }
        }
    }
  3. Execute the application:
    Video Collection - Tables
    1. Directors
    2. Categories
    3. Ratings
    4. Actors
    5. Formats
    
    Press any key to continue . . .
  4. Close the DOS window
Author

techsupport

Follow Me
Other Articles
Previous

How to filter in a XML file

Next

A Practical Guide to .NET DataTables, DataSets and DataGrids – Part 1

Categories

  • Android
  • Blog
  • Favorite Link
  • linux
  • Open Source
  • opencart
  • social
  • Tech
  • Uncategorized

Archives

  • January 2025
  • March 2024
  • August 2023
  • March 2023
  • February 2023
  • November 2021
  • August 2021
  • April 2021
  • March 2021
  • December 2020
  • October 2020
  • September 2020
  • July 2020
  • June 2020
  • May 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • September 2019
  • August 2019
  • June 2019
  • October 2018
  • August 2018
  • May 2018
  • April 2018
  • March 2018
  • January 2018
  • December 2017
  • November 2017
  • October 2017
  • September 2017
  • August 2017
  • June 2017
  • March 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016
  • April 2016
  • January 2016
  • December 2015
  • August 2015
  • July 2015
  • June 2015
  • May 2015
  • April 2015
  • January 2015
  • December 2014
  • November 2014
  • October 2014
Copyright 2026 — Technical Personnal Blog. All rights reserved. Blogsy WordPress Theme