IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Sommaire > ADO.NET
        Quelles classes utiliser pour me connecter à ma base de donnée ?
        Comment se connecter à une base de données ?
        Comment exécuter une requête SELECT ?
        Comment exécuter une requête non SELECT ?
        Comment exécuter une requête dont le texte comprend une quote simple ?
        Comment exécuter une requête paramétrée ?
        Comment puis-je exécuter une procédure stockée ?
        Comment écrire le contenu de ma table dans un fichier XML ?

        


Quelles classes utiliser pour me connecter à ma base de donnée ?
auteur : abelman
Le .NET Framework dispose de plusieurs namespaces permettant de se connecter à divers SGBD.
  • System.Data.SqlClient pour SQL Server
  • System.Data.Odbc pour les SGBD fournissant un pilote ODBC
  • Oracle.DataAcess (de ORACLE) pour ORACLE. Disponible en installant  Oracle Data Provider .NET (ODP .NET)
  • System.Data.Oracle.Client (de Microsoft) pour Oracle
  • System.Data.OleDb pour tous les SGBD ayant un fournisseur OLE DB


Comment se connecter à une base de données ?
auteur : abelman
Voici un exemple pour SQL Server

Imports System.Data.SqlClient class adobasic public shared Sub Main() Try 'Chaîne de connexion Dim connectString As String = "database=test;server=am01;User ID=samfisher;pwd=echelon" 'Objet connection Dim connection As SqlConnection = new SqlConnection(connectString) 'Ouverture connection.Open() 'Fermeture connection.Close() Catch ex As Exception System.Diagnostics.Debug.WriteLine(ex.ToString()) End Try End Sub End Class
lien :  Consulter les différents cours sur ADO.NET

Comment exécuter une requête SELECT ?
auteur : abelman
On utilise les objets Command et DataReader.
Exemple avec SQL Server

Trace.Listeners.Add(New TextWriterTraceListener(Console.Out)) Dim connectString As String = "database=test;server=SRV01;User ID=samfisher;pwd=echelon" Dim connection As SqlConnection = New SqlConnection(connectString) connection.Open() Dim command As SqlCommand = New SqlCommand("SELECT * FROM usr_contract", connection) Dim reader As SqlDataReader = command.ExecuteReader Dim row As Object() = Nothing While reader.Read If row Is Nothing Then row = New Object(reader.FieldCount) {} End If reader.GetValues(row) Dim i As Integer = 0 While i < row.GetLength(0) If Not row(i) Is Nothing AndAlso Not (row(i) Is DBNull.Value) Then Trace.Write(row(i).ToString()) Else Trace.Write("NULL") End If If i < row.GetUpperBound(0) Then Trace.Write(" | ") End If i = i + 1 End While Trace.Write(vbCrLf) End While reader.Close() connection.Close()
Consulter les cours sur ADO.NET pour plus d'informations

lien :  http://dotnet.developpez.com/cours/

Comment exécuter une requête non SELECT ?
auteur : abelman
On utilise la méthode ExecuteNonQuery de l'objet Command.
Exemple avec SqlServer

'Chaîne de connexion Dim connectString As String = "database=derivatives;server=SRV01;User ID=samfisher;pwd=echelon" 'Objet connection Dim connection As SqlConnection = new SqlConnection(connectString) 'Ouverture connection.Open() 'Objet Command Dim command As SqlCommand = new SqlCommand("UPDATE usr_contract set ctr_n = ctr_n + 1", connection) 'Execution Dim affectedrows As Integer = command.ExecuteNonQuery() Console.WriteLine("Nombre de lignes affectées {0}", affectedrows) 'Fermeture connection connection.Close()
Consulter la page cours pour ADO.NET

lien :  http://dotnet.developpez.com/cours/

Comment exécuter une requête dont le texte comprend une quote simple ?
auteur : abelman
Pour exécuter une requête contenant une quote simple, il faut utiliser les requêtes paramétrées
On peut aussi faire plus simple en doublant les quotes avant d'exécuter la requête.

Dim sql As String = "SELECT * FROM pasta WHERE name = 'aujourd''hui'" 'Ou Dim name As String = "aujourd'hui" sql = "SELECT * FROM pasta WHERE name = " + name.Replace("'", "''")

Comment exécuter une requête paramétrée ?
auteur : abelman
Il est possible de passer des paramètres à des requêtes SQL.
Exemple avec SQL Server

using System.Data.SqlClient; Imports System.Data.SqlClient 'Chaîne de connexion Dim connectString As String = "database=equities;server=JV01;User ID=samfisher;pwd=echelon" 'Objet connection Dim connection As SqlConnection = New SqlConnection(connectString) 'Ouverture connection.Open() 'Objet Command Dim command As SqlCommand = New SqlCommand("SELECT * FROM usr_contract WHERE " + _ "ctr_ref = @contract AND ctr_exg_ref = @exg", _ connection) 'Paramètres command.Parameters.Add(New SqlParameter("@contract", SqlDbType.VarChar, 5)) command.Parameters("@contract").Value = "FTE" command.Parameters.Add(New SqlParameter("@exg", SqlDbType.VarChar, 8)) command.Parameters("@exg").Value = "SBF" 'Object datareader Dim reader As SqlDataReader = command.ExecuteReader() Dim row As Object() While reader.Read() If row Is Nothing Then row = New Object(reader.FieldCount - 1) {} End If reader.GetValues(row) For i As Integer = 0 To row.GetLength(0) - 1 If Not row(i) Is DBNull.Value Then Console.Write(row(i)) Else Console.Write("NULL") End If If i < row.GetUpperBound(0) Then Console.Write(" | ") End If Next Console.WriteLine() End While 'Fermeture reader reader.Close() 'Fermeture base connection.Close()
Consulter les cours sur ADO.NET pour plus d'informations

lien :  http://dotnet.developpez.com/cours/

Comment puis-je exécuter une procédure stockée ?
auteur : abelman
Pour pouvoir exécuter une procédure stockée, vous devez utiliser un objet SqlCommand et indiquer à sa propriété CommandType que vous désirez utiliser une procédure stockée

'Objet SqlCommand Dim cmd As SqlCommand = New SqlCommand() 'On indique que l'on souhaite utiliser une procédure stockée cmd.CommandType = CommandType.StoredProcedure 'On donne le nom de cette procédure stockée cmd.CommandText = "CustOrderHist"
Plus d'informations sur les différents cours ADO.NET (voir liens plus bas)

lien :  http://dotnet.developpez.com/cours/ADO.NET/
lien :  http://dotnet.developpez.com/tutoriels/ado1/

Comment écrire le contenu de ma table dans un fichier XML ?
auteur : abelman
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>

        

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 © 2005 Abel Mandengue 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.