Partager via


Exemple de fournisseur de données .NET Framework

Les rubriques précédentes comprennent des liens vers des rubriques complémentaires contenant des exemples de code que vous pouvez utiliser pour créer un exemple de fournisseur de données .NET Framework. Vous pouvez copier ce code dans des fichiers texte vides, placer les fichiers dans un répertoire et les compiler en bibliothèque, conformément aux instructions fournies dans la section « Compilation de l'exemple de fournisseur de données .NET Framework », plus loin dans cette rubrique.

Le tableau suivant dresse la liste des fichiers d'exemple de code disponibles pour créer un exemple de fournisseur de données .NET Framework.

Nom de fichier Description
TemplateConnection.vb

TemplateConnection.cs

Contient un exemple de code permettant de créer un objet Connection. Pour plus d'informations, consultez Implémentation d'une connexion.
TemplateTransaction.vb

TemplateTransaction.cs

Contient un exemple de code permettant de créer un objet Transaction. Pour plus d'informations, consultez Implémentation d'une connexion.
TemplateCommand.vb

TemplateCommand.cs

Contient un exemple de code permettant de créer un objet Command. Pour plus d'informations, consultez Implémentation d'une commande.
TemplateParameter.vb

TemplateParameter.cs

Contient un exemple de code permettant de créer un objet Parameter membre de la collection Command.Parameters. Pour plus d'informations, consultez Implémentation d'une commande.
TemplateParameterCollection.vb

TemplateParameterCollection.cs

Contient un exemple de code permettant de créer un objet ParameterCollection à utiliser en tant que propriété Command.Parameters. Pour plus d'informations, consultez Implémentation d'une commande.
TemplateDataReader.vb

TemplateDataReader.cs

Contient un exemple de code permettant de créer un objet DataReader. Pour plus d'informations, consultez Implémentation d'un DataReader.
TemplateDataAdapter.vb

TemplateDataAdapter.cs

Contient un exemple de code permettant de créer un objet DataAdapter. Pour plus d'informations, consultez Implémentation d'un DataAdapter.
SampleDb.vb

SampleDb.cs

Contient un exemple de code qui simule une requête et met à jour une source de données. Pour plus d'informations, consultez la section « SampleDb », plus loin dans cette rubrique.

Compilation de l'exemple de fournisseur de données .NET Framework

Après avoir créé les fichiers à partir des exemples de code fournis et les avoir placés dans un dossier, exécutez la commande suivante pour créer l'exemple de fournisseur de données .NET Framework sous le nom DotNetDataProviderTemplate.dll. DotNetDataProviderTemplate.dll peut ensuite être passé en tant que référence à un programme qui utilise l'espace de noms DotNetDataProviderTemplate.

Pour compiler la version Visual Basic de l'exemple de fournisseur de données .NET Framework, vous pouvez utiliser la commande ci-dessous.

vbc /t:library /out:DotNetDataProviderTemplate.dll *.vb /r:system.dll /r:system.data.dll

Pour compiler la version C# de l'exemple de fournisseur de données .NET Framework, vous pouvez utiliser la commande ci-dessous.

csc /t:library /out:DotNetDataProviderTemplate.dll *.cs /r:system.dll /r:system.data.dll

Utilisation de l'exemple de fournisseur de données .NET Framework

Après avoir compilé l'exemple de fournisseur de données .NET Framework en DotNetDataProviderTemplate.dll, vous pouvez écrire un programme qui permette d'utiliser l'espace de noms DotNetDataProviderTemplate.

L'exemple de code suivant contient un programme qui crée des instances des exemples de DataReader et DataAdapter.

Imports System
Imports System.Data
Imports DotNetDataProviderTemplate
Imports Microsoft.VisualBasic

Class Sample
  Public Shared Sub Main()
    testReader()
    testAdapter()
  End Sub

  Public Shared Sub testReader()
    Dim conn As TemplateConnection = New TemplateConnection()
    conn.Open()
      
    Dim cmd As TemplateCommand = New TemplateCommand("select * from customers", conn)

    Dim reader As TemplateDataReader = cmd.ExecuteReader()

    Do while (reader.Read())
      Console.Write(reader.GetInt32(0) & vbTab)
      Console.Write(reader.GetString(1) & vbTab)
      Console.Write(reader.GetInt32(2))
      Console.WriteLine()
    Loop
    reader.Close()
      
    conn.Close()
  End Sub

  Public Shared Sub testAdapter()
    Dim conn As TemplateConnection = New TemplateConnection()
    Dim adapter As TemplateDataAdapter = New TemplateDataAdapter()

    adapter.SelectCommand = New TemplateCommand("select * from customers", conn)

    adapter.UpdateCommand = New TemplateCommand("update name, orderid values(@name, @orderid) where id = @id", conn)

    Dim parm As TemplateParameter = New TemplateParameter("@name", DbType.String, "name")
    adapter.UpdateCommand.Parameters.Add(parm)

    parm = New TemplateParameter("@orderid", DbType.Int32, "orderid")
    adapter.UpdateCommand.Parameters.Add(parm)

    parm = New TemplateParameter("@id", DbType.Int32, "id")
    adapter.UpdateCommand.Parameters.Add(parm)

    Dim ds As DataSet = New DataSet
    adapter.Fill(ds, "Customers")

    Console.WriteLine("------------------------")
    Console.WriteLine("DataSet contents after Fill:")
    printDataSet(ds)

    Console.WriteLine("------------------------")
    ds.Tables("Customers").Rows(2)("orderid") = 4199
    adapter.Update(ds, "Customers")

    Console.WriteLine("------------------------")
    Console.WriteLine("DataSet contents after Update:")
    printDataSet(ds)
    Console.WriteLine("------------------------")
  End Sub

  Public Shared Sub printDataSet(ds As DataSet)
    Dim table As DataTable
    Dim col As DataColumn
    Dim row As DataRow
    Dim i As Integer

    For Each table in ds.Tables
      For Each col in table.Columns
        Console.Write(col.ColumnName & vbTab & vbTab)
      Next
      Console.WriteLine()

      For Each row in table.Rows  
        For i = 0 To table.Columns.Count - 1  
          Console.Write(row(i).ToString() & vbTab & vbTab)
        Next
        Console.WriteLine()
      Next
    Next
  End Sub
End Class
[C#]
using System;
using System.Data;
using DotNetDataProviderTemplate;

class Sample
{
  static void Main()
  {
    testReader();
    testAdapter();
  }

  static void testReader()
  {
    TemplateConnection conn = new TemplateConnection();
    conn.Open();
      
    TemplateCommand cmd = new TemplateCommand("select * from customers", conn);

    IDataReader reader = cmd.ExecuteReader();
    while (reader.Read())
    {
      Console.Write(reader.GetInt32(0) + "\t");
      Console.Write(reader.GetString(1) + "\t");
      Console.Write(reader.GetInt32(2));
      Console.WriteLine();
    }
    reader.Close();
    
    conn.Close();
  }

  static void testAdapter()
  {
    TemplateConnection  conn = new TemplateConnection();
    TemplateDataAdapter  adapter = new TemplateDataAdapter();

    adapter.SelectCommand = new TemplateCommand("select * from customers", conn);

    adapter.UpdateCommand = new TemplateCommand("update name, orderid values(@name, @orderid) where id = @id", conn);
    adapter.UpdateCommand.Parameters.Add("@name", DbType.String);
    adapter.UpdateCommand.Parameters.Add("@orderid", DbType.Int32);
    adapter.UpdateCommand.Parameters.Add("@id", DbType.Int32);

    DataSet ds = new DataSet();
    adapter.Fill(ds, "Customers");

    Console.WriteLine("------------------------");
    Console.WriteLine("Results of adapter.Fill");
    printDataSet(ds);
    Console.WriteLine("------------------------");

    ds.Tables["Customers"].Rows[2]["orderid"] = 4199;
    adapter.Update(ds, "Customers");

    Console.WriteLine("------------------------");
    Console.WriteLine("Results of adapter.Update");
    printDataSet(ds);
    Console.WriteLine("------------------------");
  }

  static void printDataSet(DataSet ds)
  {
    foreach (DataTable table in ds.Tables)
    {
      foreach (DataColumn col in table.Columns)
        Console.Write(col.ColumnName + "\t\t");
      Console.WriteLine();
      foreach (DataRow row in table.Rows)
      {
        for (int i = 0; i < table.Columns.Count; i++)
          Console.Write(row[i] + "\t\t");
        Console.WriteLine("");
      }
    }
  }
}

Pour compiler le programme de l'exemple de code précédent, veillez à ce qu'une référence à DotNetDataProvider.dll soit incluse.

L'exemple de commande suivant compilera le programme s'il est stocké dans un fichier appelé « SampleTest.vb » :

vbc SampleTest.vb /r:system.dll /r:system.data.dll /r:system.xml.dll /r:DotNetDataProviderTemplate.dll

L'exemple de commande suivant compilera le programme s'il est stocké dans un fichier appelé « SampleTest.cs » :

csc SampleTest.cs /r:system.dll /r:system.data.dll /r:system.xml.dll /r:DotNetDataProviderTemplate.dll

SampleDb

En plus de l'exemple d'implémentation du fournisseur de données .NET Framework, un exemple de base de données est fourni dans cette section pour simuler des opérations SELECT et UPDATE sur une source de données. Cet exemple de base de données, nommé SampleDb, est livré avec les fichiers du fournisseur de données .NET Framework. Vous devrez inclure le fichier SampleDb.vb (pour Visual Basic) ou SampleDb.cs (pour C#) avec vos fichiers modèles au moment de compiler l'exemple de fournisseur de données .NET Framework.

Voir aussi

Implémentation d'un fournisseur de données .NET Framework