Cette fonction m'est très utile dans mes programmes d'accès aux bases de données, alors je vous la donne. Biensûr il y a moyen de l'améliorer.
Voilà vous donner tout simplement le contrôle où se situe vos différent textbox et autre, la phrase sql globale de recherches de vos données et vous maintenant une variable du nom de strConnection qui n'est autre que la chaîne de connection à votre base de données. Vous lancez la procédure et hop les données s'affichent comme par miracle sans se prendre la tête de noter 36000 lignes de codes. Une ligne de code est suffisant !
Désolé pour les commentaires, je suis pas très fortiche pour ça !
Ah j'allais oublier de vous informer que cette procédure est récursive ! A vous d'en voir l'uitilité !
Source / Exemple :
Public strConnection as string="user id=sa;password=;initial catalog=NomBaseDeDonnées;server=ServeurBaseDeDonnées"
Public Sub GetField(ByVal Ctrl As Object, ByVal strSQL As String)
Dim DS As New DataSet()
Try
'Recherche dans la base de données
Dim DBCon As New SqlClient.SqlConnection(strConnection)
Dim Query As New SqlClient.SqlDataAdapter(strSQL, DBCon)
Query.Fill(DS)
Query.Dispose()
DBCon.Close()
DBCon.Dispose()
If DS.Tables(0).Rows.Count > 0 Then
Dim C As Control
'Affiche les données suivants le control
For Each C In Ctrl
Select Case C.GetType.ToString
Case "System.Windows.Forms.TextBox"
Dim TB As TextBox = C
If Not (TypeOf (DS.Tables(0).Rows(0).Item(TB.Name)) Is DBNull) Then
TB.Text = DS.Tables(0).Rows(0).Item(TB.Name)
Else
TB.Text = ""
End If
Case "System.Windows.Forms.ComboBox"
Dim CB As ComboBox = C
If Not (TypeOf (DS.Tables(0).Rows(0).Item(CB.Name)) Is DBNull) Then
Dim I As Integer
If CB.Items.Count > 0 Then
For I = 0 To CB.Items.Count - 1
If CB.Items(I).ToString.IndexOf(DS.Tables(0).Rows(0).Item(CB.Name), 0) <> -1 Then CB.SelectedIndex = I
Next I
End If
End If
Case "System.Windows.Forms.CheckBox"
Dim CB As CheckBox = C
If Not (TypeOf (DS.Tables(0).Rows(0).Item(CB.Name)) Is DBNull) Then
If DS.Tables(0).Rows(0).Item(cb.Name) = True Then
CB.Checked = True
Else
CB.Checked = False
End If
End If
Case "System.Windows.Forms.ListBox"
Dim LB As ListBox = C
If Not (TypeOf (DS.Tables(0).Rows(0).Item(LB.Name)) Is DBNull) Then
If LB.Items.Count > 0 Then
Dim I As Integer
For I = 0 To LB.Items.Count - 1
If LB.Items(I).ToString.IndexOf(DS.Tables(0).Rows(0).Item(LB.Name)) <> -1 Then
LB.SelectedIndex = I
End If
Next I
End If
End If
End Select
GetField(C.Controls, strSQL)
Next
End If
Catch Err As Exception
MsgBox(Err.Message, MsgBoxStyle.Exclamation, "Erreur")
Finally
DS.Dispose()
End Try
End Sub
Private Sub Button1_Click(ByVal sender As Object, ByVal e as System.EventArgs) Handles Button1.Click
GetField(GroupBox1.Controls,"Select * From Employes Where EmployeId=1")
End Sub
Conclusion :
La dernière fonction montre un exemple d'utilisation. Très simple non !?!
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.