Je connais bien la façon dont VB6 ADO traite les requêtes SQL et parcourt les résultats du jeu d'enregistrements.vb.net parcourir les résultats de la requête
Cependant, quelle est la bonne façon d'interroger un serveur, parcourir les résultats et éliminer ma requête dans VB.Net? Toutes les manières que j'ai employées semblent être instables et planter aléatoirement.
J'utilise le code suivant:
Public Function GetSQLTable(ByVal strSQL As String) As DataTable
Dim table As New DataTable
Dim adapt As SqlDataAdapter
Try
adapt = New SqlDataAdapter(strSQL, gconIntegration)
adapt.Fill(table)
Catch ex As Exception
LogError("GetSQLTable: " & ex.ToString(), "SQL: " & strSQL)
End Try
Return table
End Function
Et en utilisant comme ceci:
Dim dt As DataTable
Dim lngRow As Long
Dim current As DataRow
Dim lngContact As long
Try
dt = GetSQLTable(strSQL)
For lngRow = 0 To dt.Rows.Count - 1
current = dt.Rows.Item(lngRow)
lngContact = current.Item("indvid")
DoSomething(lngContact)
Next
Catch ex As Exception
LogError("FindContact: " & ex.ToString(), "SQL: " & strSQL)
lngContact = -1
Finally
current = nothing
dt = nothing
gconIntegration est une connexion globale. Donc, vous dites qu'une seule connexion pour toutes mes lectures et écritures n'est pas optimale? –
Injection SQL n'est pas vraiment un problème quand ce n'est pas une application web (c'est en fait un exe compilé) –
Correct- ce design vous oblige à faire tout votre travail de base de données en série. Ceci est particulièrement mauvais pour un site Web, où toutes les demandes sont dans la même application. Les connexions de pools .Net pour vous en arrière-plan, il n'est donc pas nécessaire de rester connecté globalement. –