Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[Migration VB6 -> VB.NET] Connexion à une base de données Access et/ou Sql Server

4 réponses
Avatar
dinbougre
Bonjour,

Je commence à développer sous VB.NET mais je suis complétement perdu par
rapport à VB6.
J'ai parcouru différents tutoriaux et même avec le livre VB.NET de Microsoft
je n'ai toujours
pas compris le fonctionnement des connexions aux bases de données.

En VB6 suffisait de déclarer un objet ADODB.Connection puis un objet
ADODB.Recordset
pour recueillir les données. Sous VB.NET est ce le même principe ? Si oui
est ce que vous
avez un exemple de code de connexion à une base de données "MaBase" et
récupère la valeur
du champ "MonChamp" dans la table "MaTable"

Sous VB6 ça aurait donné quelque chose du genre :

-----------------------------
Dim Cnx as NEW ADODB.Connection
Dim Rs as NEW ADODB.Recordset

MaCnx.ConnectionString = MaChaineDeConnexion
MaCnx.Open
Rs.Open "SELECT MonChamp FROM MaTable", MaCnx
-----------------------------

Que mettez vous dans "MaChaineDeConnexion" parce qu'il me semble que la
syntaxe a aussi
changé entre les 2 versions de VB.


Merci

4 réponses

Avatar
LOIC
Bonjour,

Ce liens devraient répondre à toutes tes questions :

http://dotnet.developpez.com/cours/ADO.NET/

@+

"dinbougre" a écrit dans le message de
news:41560b84$0$19387$
Bonjour,

Je commence à développer sous VB.NET mais je suis complétement perdu par
rapport à VB6.
J'ai parcouru différents tutoriaux et même avec le livre VB.NET de


Microsoft
je n'ai toujours
pas compris le fonctionnement des connexions aux bases de données.

En VB6 suffisait de déclarer un objet ADODB.Connection puis un objet
ADODB.Recordset
pour recueillir les données. Sous VB.NET est ce le même principe ? Si oui
est ce que vous
avez un exemple de code de connexion à une base de données "MaBase" et
récupère la valeur
du champ "MonChamp" dans la table "MaTable"

Sous VB6 ça aurait donné quelque chose du genre :

-----------------------------
Dim Cnx as NEW ADODB.Connection
Dim Rs as NEW ADODB.Recordset

MaCnx.ConnectionString = MaChaineDeConnexion
MaCnx.Open
Rs.Open "SELECT MonChamp FROM MaTable", MaCnx
-----------------------------

Que mettez vous dans "MaChaineDeConnexion" parce qu'il me semble que la
syntaxe a aussi
changé entre les 2 versions de VB.


Merci




Avatar
Mehmo
La connexion string est la même comme suit:
"Provider=?????; DSN=?????".
Voici un exemple de récupération de données


Dim Cnx As ADODB.Connection = New ADODB.Connection
Dim Rs As ADODB.Recordset = New ADODB.Recordset
MaCnx.ConnectionString = MaChaineDeConnexion
MaCnx.Open()
Rs.Open("SELECT MonChamp FROM MaTable", MaCnx)


Mais il est préférable d'utiliser plutôt la syntaxe
suivante:

Dim cmd As ADODB.Command
Dim rs As ADODB.Recordset

With cmd
.let_ActiveConnection(MaCnx)
.CommandType = ADODB.CommandTypeEnum.adCmdText
.CommandText = "SELECT MonChamp FROM MaTable"
End With

rs = New ADODB.Recordset
rs = cmd.Execute()

If Not (rs Is Nothing) Then
With rs
If Not rs.EOF Then
.MoveFirst()
Do While Not .EOF
myVariable1 = .Fields(0).Value
myVariable2 = .Fields(1).Value
.....
.MoveNext()
Loop
End If
End With
rs.Close()
End If

rs = Nothing
cmd = Nothing


Il existe un convertisseur VB6 -> Vb.Net dans
l'environnement Visual Studio (Menu Tools - Upgrade VB6
Code ...)

J'espère ça va t'aider.


-----Message d'origine-----
Bonjour,

Je commence à développer sous VB.NET mais je suis


complétement perdu par
rapport à VB6.
J'ai parcouru différents tutoriaux et même avec le livre


VB.NET de Microsoft
je n'ai toujours
pas compris le fonctionnement des connexions aux bases


de données.

En VB6 suffisait de déclarer un objet ADODB.Connection


puis un objet
ADODB.Recordset
pour recueillir les données. Sous VB.NET est ce le même


principe ? Si oui
est ce que vous
avez un exemple de code de connexion à une base de


données "MaBase" et
récupère la valeur
du champ "MonChamp" dans la table "MaTable"

Sous VB6 ça aurait donné quelque chose du genre :

-----------------------------
Dim Cnx as NEW ADODB.Connection
Dim Rs as NEW ADODB.Recordset

MaCnx.ConnectionString = MaChaineDeConnexion
MaCnx.Open
Rs.Open "SELECT MonChamp FROM MaTable", MaCnx
-----------------------------

Que mettez vous dans "MaChaineDeConnexion" parce qu'il


me semble que la
syntaxe a aussi
changé entre les 2 versions de VB.


Merci


.



Avatar
dinbougre
Merci

Mais c'est de l'ADO et non de l'ADO.NET là non? ou je me trompe?
Il me semblait qu'en .NET on avait les nouveaux objets sqlconnection et
autres?




"Mehmo" a écrit dans le message de
news:1b7401c4a46f$40843db0$
La connexion string est la même comme suit:
"Provider=?????; DSN=?????".
Voici un exemple de récupération de données


Dim Cnx As ADODB.Connection = New ADODB.Connection
Dim Rs As ADODB.Recordset = New ADODB.Recordset
MaCnx.ConnectionString = MaChaineDeConnexion
MaCnx.Open()
Rs.Open("SELECT MonChamp FROM MaTable", MaCnx)


Mais il est préférable d'utiliser plutôt la syntaxe
suivante:

Dim cmd As ADODB.Command
Dim rs As ADODB.Recordset

With cmd
.let_ActiveConnection(MaCnx)
.CommandType = ADODB.CommandTypeEnum.adCmdText
.CommandText = "SELECT MonChamp FROM MaTable"
End With

rs = New ADODB.Recordset
rs = cmd.Execute()

If Not (rs Is Nothing) Then
With rs
If Not rs.EOF Then
.MoveFirst()
Do While Not .EOF
myVariable1 = .Fields(0).Value
myVariable2 = .Fields(1).Value
.....
.MoveNext()
Loop
End If
End With
rs.Close()
End If

rs = Nothing
cmd = Nothing


Il existe un convertisseur VB6 -> Vb.Net dans
l'environnement Visual Studio (Menu Tools - Upgrade VB6
Code ...)

J'espère ça va t'aider.
Avatar
RABILLOUD JMARC [MVP]
Un exemple parmi d'autre
Dim strConn, strSQL As String

strConn = "data source= d:tutorielbiblio.mdb
;Provider=Microsoft.Jet.OLEDB.4.0"

strSQL = "SELECT * FROM Authors"

Dim MonDa As New OleDbDataAdapter(strSQL, strConn)

Dim MonDataSet As New DataSet

MonDa.MissingSchemaAction = MissingSchemaAction.AddWithKey

MonDa.Fill(MonDataSet)


"dinbougre" a écrit dans le message de news:
41584da3$0$26782$
Merci

Mais c'est de l'ADO et non de l'ADO.NET là non? ou je me trompe?
Il me semblait qu'en .NET on avait les nouveaux objets sqlconnection et
autres?




"Mehmo" a écrit dans le message de
news:1b7401c4a46f$40843db0$
La connexion string est la même comme suit:
"Provider=?????; DSN=?????".
Voici un exemple de récupération de données


Dim Cnx As ADODB.Connection = New ADODB.Connection
Dim Rs As ADODB.Recordset = New ADODB.Recordset
MaCnx.ConnectionString = MaChaineDeConnexion
MaCnx.Open()
Rs.Open("SELECT MonChamp FROM MaTable", MaCnx)


Mais il est préférable d'utiliser plutôt la syntaxe
suivante:

Dim cmd As ADODB.Command
Dim rs As ADODB.Recordset

With cmd
.let_ActiveConnection(MaCnx)
.CommandType = ADODB.CommandTypeEnum.adCmdText
.CommandText = "SELECT MonChamp FROM MaTable"
End With

rs = New ADODB.Recordset
rs = cmd.Execute()

If Not (rs Is Nothing) Then
With rs
If Not rs.EOF Then
.MoveFirst()
Do While Not .EOF
myVariable1 = .Fields(0).Value
myVariable2 = .Fields(1).Value
.....
.MoveNext()
Loop
End If
End With
rs.Close()
End If

rs = Nothing
cmd = Nothing


Il existe un convertisseur VB6 -> Vb.Net dans
l'environnement Visual Studio (Menu Tools - Upgrade VB6
Code ...)

J'espère ça va t'aider.