IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ ASP.NET/VB.NET

logo
Sommaire > ADO.NET 2.0 > Divers
        Comment fusionner 2 DataTables ?
        Comment récupérer une Row d'un DataSet via un index de DataView?
        Comment écrire le contenu de ma table dans un fichier XML ?
        Comment créer une base de données Access?
        Faut-il utiliser les DataReader ou les DataSet ?
        Comment éviter les erreurs dans l'écriture d'une chaîne de caractères?
        Comment vérifier qu'un provider est installé sur la machine?
        Comment énumérer les providers installés sur la machine?



Comment fusionner 2 DataTables ?
auteur : bidou
Pour fusionner 2 DataTables, il faut les inclures dans un DataSet :

					Dim dt1 As New DataTable("Test")
					Dim dt2 As New DataTable("Test")
					Dim ds As New DataSet
					ds.Merge(dt1)
					ds.Merge(dt2)
				
ds.Table(0) représentera la table fusionné. Pour fusionner 2 DataTables il faut qu'elle aient le même nom, sinon une nouvelle table est ajoutée au DataSet.

Cette utilisation de la fonction merge du DataSet est ici décrite de mannière simpliste pour l'utilisation la plus courrante qui en est faite. Pour plus de détail sur cette fonction reportez-vous au cours d'ADO.NET.

lien : fr Cours d'ADO.NET

Comment récupérer une Row d'un DataSet via un index de DataView?
auteur : David Pedehourcq
Parfois, il est nécessaire de récupérer l'index d'un Row dans un DataTable en ne connaissant que l'index d'un Row du DataView (qui est différent suite à un tri par exemple). Voici comment faire:

					dataview.Item(x).Row
				
Cette ligne retourne le Row du DataSet correspondant à l'index x du DataView.


Comment écrire le contenu de ma table dans un fichier XML ?
auteur : Thomas Lebrun
En utilisant un DataSet et sa méthode WriteXml, vous avez la possibilité d'écrire le contenu d'une table dans un fichier XML.

					Imports System.Data.SqlClient
					Public Class EcrireXML
					Public Shared Sub Main()
					'Création de la chaîne de connexion
					Dim connectString As String = "Server=SRV01;Database=Northwind;User ID=samfisher;Password=echelon"
					'Création de la connexion
					Dim connection As SqlConnection = New SqlConnection(connectString)
					'Création du SqlDataAdapter
					Dim da As SqlDataAdapter = New SqlDataAdapter("Select * from Customers", connection)
					'Création d'un DataSet
					Dim ds As DataSet = New DataSet
					'Remplissage du DataSet avec le SqlDataAdapter
					da.Fill(ds, "Customers")
					'Ecriture du fichier XML au moyen de la méthode WriteXml
					ds.WriteXml("E:\Temp\TestXml.xml")
					End Sub
					End Class
				
Voici, après traitement, le contenu du fichier TestXml.xml :


					
 <?xml version="1.0" standalone="yes" ?>
- <NewDataSet>
- <myTable>
<CustomerID>ALFKI</CustomerID>
 <CompanyName>Alfreds Futterkiste</CompanyName>
 <ContactName>Maria Anders</ContactName>
  <ContactTitle>Sales Representative</ContactTitle>
  <Address>Obere Str. 57</Address>
  <City>Berlin</City>
  <PostalCode>12209</PostalCode>
  <Country>Germany</Country>
  <Phone>030-0074321</Phone>
  <Fax>030-0076545</Fax>
</myTable>

				

Comment créer une base de données Access?
auteur : Didier Danse
Pour créer une base de données Access, il est possible d'utiliser le code suivant:

					
Dim Cat As ADOX.CatalogClass = New ADOX.CatalogClass
Cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName)

				

Faut-il utiliser les DataReader ou les DataSet ?
auteur : Didier Danse
Tout dépend le nombre de fois que vous devez utiliser les données provenant de votre base et ce que vous souhaitez en faire.
Si il s'agit d'une simple lecture des données, utilisez un DataReader car c'est ce que le DataSet utilise en interne pour se remplir.
Si vous devez accéder plusieurs fois à ces données et les modifier, utilisez un DataSet.


Comment éviter les erreurs dans l'écriture d'une chaîne de caractères?
auteur : Didier Danse
Il est conseillé d'utiliser l'objet SqlConnectionStringBuilder inclu dans le framework .NET 2.0.

					
Dim conStrbuilder As SqlConnectionStringBuilder = New SqlConnectionStringBuilder
With conStrbuilder
.DataSource = serverName
.UserID = uid
.Password = pwd
End With
Dim c As SqlConnection = New SqlConnection(conStrbuilder.ConnectionString)

				

Comment vérifier qu'un provider est installé sur la machine?
auteur : Didier Danse
Il est possible de lister les providers installés sur une machine. En filtre sur cette liste, il est possible de voir si un provider est installé ou non.

					
If DbProviderFactories.GetFactoryClasses.Select("InvariantName='" + invariantName And "'").Length = 0 Then
    Response.Write(invariantName + "n'existe pas")
End If

				

Comment énumérer les providers installés sur la machine?
auteur : Didier Danse
Le framework .NET 2.0 nous amène un objet très intéressant pour ce point. Ainsi, il existe une méthode statique GetFactoryClasses dans l'objet DbProviderFactories.

Comme on peut le voir dans le code qui suit, cette méthode renvoie une DataTable qu'il est possible de parcourir et encore d'utiliser cette DataTable pour afficher dans un composant de liste ou de grille.

					
Dim providerTable As DataTable = DbProviderFactories.GetFactoryClasses
For Each row As DataRow In providerTable.Rows
    For Each col As DataColumn In providerTable.Columns
        Response.WriteLine(col.ColumnName + ": " + row(col.ColumnName))
    Next
Next

				
N'oubliez pas d'inclure cette ligne en début de fichier:

					
Imports System.Data.Common

				


Consultez les autres F.A.Q's


Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2007 Dotnet Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.