90 votes

Comment extraire des données d'un tableau de données ?

Tengo un DataTable qui est remplie à partir d'une requête SQL dans une base de données locale, mais je ne sais pas comment en extraire les données. Méthode principale (dans le programme de test) :

static void Main(string[] args)
{
    const string connectionString = "server=localhost\\SQLExpress;database=master;integrated Security=SSPI;";
    DataTable table = new DataTable("allPrograms");

    using (var conn = new SqlConnection(connectionString))
    {
        Console.WriteLine("connection created successfuly");

        string command = "SELECT * FROM Programs";

        using (var cmd = new SqlCommand(command, conn))
        {
            Console.WriteLine("command created successfuly");

            SqlDataAdapter adapt = new SqlDataAdapter(cmd);

            conn.Open(); 
            Console.WriteLine("connection opened successfuly");
            adapt.Fill(table);
            conn.Close();
            Console.WriteLine("connection closed successfuly");
        }
    }

    Console.Read();
}

La commande que j'ai utilisée pour créer les tables dans ma base de données :

create table programs
(
    progid int primary key identity(1,1),
    name nvarchar(255),
    description nvarchar(500),
    iconFile nvarchar(255),
    installScript nvarchar(255)
)

Comment puis-je extraire des données du DataTable sous une forme utilisable ?

-1voto

Hamid Bahmanabady Points 625
  var table = Tables[0]; //get first table from Dataset
  foreach (DataRow row in table.Rows)
     {
       foreach (var item in row.ItemArray)
         {
            console.Write("Value:"+item);
         }
     }

-1voto

Rick Points 84

Veuillez noter qu'il n'est pas nécessaire d'ouvrir et de fermer la connexion lorsque vous utilisez DataAdapter.

Je suggère donc de mettre à jour ce code et de supprimer l'ouverture et la fermeture de la connexion :

        SqlDataAdapter adapt = new SqlDataAdapter(cmd);

conn.Open() ; // cette ligne de code est inutile

        Console.WriteLine("connection opened successfuly");
        adapt.Fill(table);

conn.Close() ; // cette ligne de code est inutile

        Console.WriteLine("connection closed successfuly");

Documentation de référence

Le code présenté dans cet exemple n'ouvre et ne ferme pas explicitement le fichier Connexion. La méthode Fill ouvre implicitement la DataAdapter utilise si elle constate que la connexion n'est pas déjà ouverte. ouverte. Si la méthode Fill a ouvert la connexion, elle la ferme également lorsque le remplissage est terminé. Cela peut simplifier votre code lorsque vous traitez avec une opération unique telle que le remplissage ou la mise à jour. Cependant, si vous plusieurs opérations nécessitant une connexion ouverte, vous pouvez pouvez améliorer les performances de votre application en appelant explicitement la méthode d'ouverture de la connexion, en effectuant les opérations suivantes la méthode Open de la connexion, en effectuant les opérations sur la la source de données, puis en appelant la méthode Close de la connexion. Vous devez essayer de maintenir les connexions à la source de données ouvertes aussi brièvement que possible afin de libérer des ressources qui pourront être utilisées par d'autres utilisateurs. que possible afin de libérer des ressources qui pourront être utilisées par d'autres applications clientes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X