Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo

precedent    sommaire    suivant   


Comment récupérer les données résultants d'une requette ?
auteur : David Pedehourcq
Il y a en fait 2 moyens de récupérer les données d'une requette :
  • On les récupère sous forme de flux en lecture seule, en avant seulement, à l'aide d'un datareader.
  • On les stocke en mémoire dans une structure appellée dataset, facilitant ainsi l'ajout, la mise à jours et la suppression des données.


  • Que vous utilisiez l'une ou l'autre des méthodes, leduke à rédigé 2 excellents articles qui vous permettrons de récupérer les données résultants d'une requette.

    lien : fr Les objets DataAdapter et Dataset dans ADO.NET
    lien : fr ADO.NET : Connection, Command et DataReader

    Comment remplir une dataTable sans passer par un dataAdapter ?
    auteur : David Pedehourcq
    Voici un exemple ou l'on crée et on remplis un DataTable en code-behind
    
    Dim tuple As DataRow 
    Dim table As new DataTable 
    Dim col1 As New DataColumn("Col1", GetType(System.Double)) 
    Dim col2 As New DataColumn("Col", GetType(System.String)) 
    'on ajoute les colonnes à la datatable 
    table.Columns.Add(col1) 
    table.Columns.Add(col2) 
    'on crée un rows 
    tuple = table.NewRow() 
    'on le remplis 
    tuple.Item(0) = 1 
    tuple.Item(1) = "Première tuple de mon datatable" 
    'on l'ajoute à la table 
    table.Rows.Add(tuple) 
    'on crée un rows 
    tuple = table.NewRow() 
    'on le remplis 
    tuple.Item(0) = 2 
    tuple.Item(1) = "deuxième tuple de mon datatable" 
    'on l'ajoute à la table 
    table.Rows.Add(tuple) 
    
    lien : fr Cours d'ADO.NET

    Comment puis-je exécuter une procédure stockée ?
    auteur : Morpheus
    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.
    
    'Exemple pour SQL SERVER 
    '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"
    

    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 fr 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
    
    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()
    

    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


    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()
    

    precedent    sommaire    suivant   

    Consultez les autres F.A.Q's


    Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2007  Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets. Cette page est déposée à la SACD.

    Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com