|
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);
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 . . .
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 |
|
|
||