FAQ ASP.NET/VB.NET
|
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 : Les objets DataAdapter et Dataset dans ADO.NET
lien : ADO.NET : Connection, Command et DataReader
|
|
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 ))
table. Columns . Add (col1)
table. Columns . Add (col2)
tuple = table. NewRow ()
tuple. Item (0) = 1
tuple. Item (1) = " Première tuple de mon datatable "
table. Rows . Add (tuple)
tuple = table. NewRow ()
tuple. Item (0) = 2
tuple. Item (1) = " deuxième tuple de mon datatable "
table. Rows . Add (tuple)
|
|
lien : Cours d'ADO.NET
|
|
auteurs : Thomas Lebrun, Immobilis, nico-pyright(c) |
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.
Public Sub ProcedureStockee ()
Dim factory As DbProviderFactory = DbProviderFactories. GetFactory (ConfigurationManager. ConnectionStrings (" ChaineDeConnexion " ). ProviderName )
Using connection As IDbConnection = factory. CreateConnection ()
connection. ConnectionString = ConfigurationManager. ConnectionStrings (" ChaineDeConnexion " ). ConnectionString
connection. Open ()
Using command As IDbCommand = factory. CreateCommand ()
command. Connection = connection
command. CommandType = CommandType. StoredProcedure
command. CommandText = " CustOrderHist "
command. ExecuteNonQuery ()
End Using
End Using
End Sub
|
|
|
auteurs : abelman, Immobilis, nico-pyright(c) |
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.
Public Sub Parametree ()
Dim factory As DbProviderFactory = DbProviderFactories. GetFactory (ConfigurationManager. ConnectionStrings (" ChaineDeConnexion " ). ProviderName )
Using connection As IDbConnection = factory. CreateConnection ()
connection. ConnectionString = ConfigurationManager. ConnectionStrings (" ChaineDeConnexion " ). ConnectionString
connection. Open ()
Using command As IDbCommand = factory. CreateCommand ()
command. CommandText = " SELECT * FROM usr_contract WHERE ctr_ref = @contract AND ctr_exg_ref = @exg "
command. Connection = connection
Dim param As IDataParameter = factory. CreateParameter ()
param. ParameterName = " @contract "
param. DbType = DbType. String
param. Value = " FTE "
command. Parameters . Add (param)
Dim param1 As IDataParameter = factory. CreateParameter ()
param1. ParameterName = " @exg "
param1. DbType = DbType. String
param1. Value = " SBF "
command. Parameters . Add (param1)
Using reader As IDataReader = command. ExecuteReader ()
While reader. Read ()
Dim i As Integer
For i = 0 To reader. FieldCount - 1
If Not (reader (i) Is DBNull. Value ) Then
Console. Write (reader (i). ToString ())
Else
Console. Write (" NULL " )
End If
If (i < reader. FieldCount ) Then
Console. Write (" | " )
End If
Next
Console. WriteLine ()
End While
End Using
End Using
End Using
End Sub
|
|
|
auteurs : abelman, Immobilis, nico-pyright(c) |
Il est possible de passer des paramètres à des requêtes SQL.
Exemple avec SQL Server
Imports System. Data . SqlClient
Dim connectString As String = " database=equities;server=JV01;User ID=samfisher;pwd=echelon "
Dim connection As SqlConnection = New SqlConnection (connectString)
connection. Open ()
Dim command As SqlCommand = New SqlCommand (" SELECT * FROM usr_contract WHERE " + _
" ctr_ref = @contract AND ctr_exg_ref = @exg " , _
connection)
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 "
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
reader. Close ()
connection. Close ()
|
|
|
auteurs : abelman, Immobilis, nico-pyright(c) |
On utilise la méthode ExecuteNonQuery de l'objet Command.
Exemple valable pour tout type de base de données supporté par ADO.NET 2
Public Sub NonSelect ()
Dim factory As DbProviderFactory = DbProviderFactories. GetFactory (ConfigurationManager. ConnectionStrings (" ChaineDeConnexion " ). ProviderName )
Using connection As IDbConnection = factory. CreateConnection ()
connection. ConnectionString = ConfigurationManager. ConnectionStrings (" ChaineDeConnexion " ). ConnectionString
connection. Open ()
Using command As IDbCommand = factory. CreateCommand ()
command. CommandText = " UPDATE usr_contract set ctr_n = ctr_n + 1 "
command. Connection = connection
command. CommandType = CommandType. Text
Console. WriteLine (" Nombre de lignes affectées {0} " , command. ExecuteNonQuery ())
End Using
End Using
End Sub
|
Consulter la page cours pour ADO.NET
|
|
auteurs : abelman, Immobilis, nico-pyright(c) |
On utilise les objets Command et DataReader.
Exemple avec SQL Server
Public Sub RqSelect ()
Dim factory As DbProviderFactory = DbProviderFactories. GetFactory (ConfigurationManager. ConnectionStrings (" ChaineDeConnexion " ). ProviderName )
Using connection As IDbConnection = factory. CreateConnection ()
connection. ConnectionString = ConfigurationManager. ConnectionStrings (" ChaineDeConnexion " ). ConnectionString
connection. Open ()
Using command As IDbCommand = factory. CreateCommand ()
command. CommandText = " SELECT * FROM usr_contract "
command. Connection = connection
Using reader As IDataReader = command. ExecuteReader ()
While reader. Read ()
Dim i As Integer
For i = 0 To reader. FieldCount - 1
If Not (reader (i) Is DBNull. Value ) Then
Console. Write (reader (i). ToString ())
Else
Console. Write (" NULL " )
If (i < reader. FieldCount ) Then
Console. Write (" | " )
End If
End If
Next
Console. WriteLine ()
End While
End Using
End Using
End Using
End Sub
|
|
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.