Page d'Accueil

Maintenance des Tableaux

 

Supprimer un Tableau

S'il vous arrive justement d'avoir un tableau dont vous n'avez pas besoin davantage ou dont le rôle est périmé dans votre application, vous pouvez supprimer ce tableau. Cette opération est soutenue par la méthode DataTableCollection.Remove () qui est prise en charge dans deux versions. Pour supprimer un tableau en utilisant son nom de variable déclaré, vous pouvez utiliser la version suivante :

public void Remove(DataTable table);

Cette version s'attend au nom qui a été utilisé pour déclarer l'objet DataTable. Si le tableau existe dans la collection DateSet.Tables, elle serait supprimée. Voici un exemple:

using System;
using System.Data;

public class VideoCollection
{
    . . . No Change

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

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

        dsVideoCollection.Tables.Remove(tblVideoCategories);

        Console.WriteLine();

        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;
    }
}

Pour supprimer un tableau en utilisant son nom d'objet, vous pouvez utiliser la version suivante de la méthode DataTableCollection.Remove () :

public void Remove(string name);

Cette méthode s'attend au nom formel du tableau comme argument. Si un tableau existe sous ce nom, elle serait supprimée. Voici un exemple :

using System;
using System.Data;

public class VideoCollection
{
    . . . No Change

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

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

        dsVideoCollection.Tables.Remove("Categories");

        Console.WriteLine();

        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;
    }
} 

Ceci produirait :

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

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

Press any key to continue . . .

Si aucun tableau avec ce nom n'est trouvé, le compilateur rejetterait une exception ArgumentException. De nouveau, vous devriez d'abord vérifier qu'un tableau avec le nom peu désiré existe avant de le supprimer.

Si le tableau existe dans la collection, il peut ne pas permettre à l'utilisateur de le supprimer. Pour découvrir si un tableau peut être supprimée, appelez la méthode DataTableCollection.CanRemove (). Sa syntaxe est :

public bool CanRemove(DataTable table);

Vérification de l'existence d'un Tableau dans une collection

En appelant la méthode DataTableCollection.Remove (), si l'objet DataTable passé comme argument n'est pas trouvé, le compilateur rejetterait des exceptions ArgumentNullException ou ArgumentException. Pour cette raison, avant de supprimer un tableau, vous devriez d'abord vérifier son existence. Pour ce faire, vous pouvez appeler la méthode DataTableCollection.Contains ().

Voici un exemple d'appel cette méthode avant de supprimer un tableau :

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);
        }
        public void DeleteTable(string name)
        {
            if (dsVideoCollection.Tables.Contains(name))
                dsVideoCollection.Tables.Remove(name);
            else
                Console.WriteLine("Table {0} not found in the database", name);
        }

        public void PerformMaintenance()
        {
            ShowTables();
            Console.WriteLine();

            DeleteTable("Ratings");
            Console.WriteLine();

            ShowTables();
            Console.WriteLine();

            DeleteTable("Types");
            Console.WriteLine();

            ShowTables();
            Console.WriteLine();
        }
    }
}

Ceci produirait :

Video Collection - Tables
1. Directors
2. Categories
3. Ratings
4. Actors
5. Formats

Video Collection - Tables
1. Directors
2. Categories
3. Actors
4. Formats

Table Types not found in the database

Video Collection - Tables
1. Directors
2. Categories
3. Actors
4. Formats

Press any key to continue . . .

Supprimer une Collection de Tableaux

Pour supprimer tous les tableaux d'un objet DataSet, vous pouvez appeler la méthode DataTableCollection.Clear (). Sa syntaxe est :

public void Clear();

Appeler cette méthode supprimerait tous les objets DataTable de DataSet.

  

Précédent Copyright © 2007, Yevol Suivant