VB.NET

3ING Messages postés 20 Date d'inscription mercredi 15 juillet 2009 Statut Membre Dernière intervention 1 janvier 2011 - 4 août 2009 à 15:08
3ING Messages postés 20 Date d'inscription mercredi 15 juillet 2009 Statut Membre Dernière intervention 1 janvier 2011 - 6 août 2009 à 21:27
bjr tt le monde.
j developpe une application de gestion et puis voila j vx afficher sur un datagridview les clients à partir de la table client qui existe dans ma base projet.jé ecrit le code ci-dessous mé ça marche pas.rien est affiché.
svp j'aurai l plaisir si qlq1 peut m'aider.merci d'avaaaaaaaance.
le code est le suivant :

Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports Microsoft.VisualBasic

public Class listclient

Inherits System.Windows.Forms.Form

Private Sub listclient_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim mycon As SqlConnection New SqlConnection("initial catalog projet;data source =.;integrated security = true;user id = root;")
Dim mycmd As SqlCommand = mycon.CreateCommand
mycmd.CommandText = "select client.* from projet.client"
mycon.Open()
Dim myreader As SqlDataReader = mycmd.ExecuteReader
Do While myreader.Read()
DataGridView1.Rows.Add(myreader.GetString(0))

Loop
myreader.Close()
mycon.Close()

End Sub
End class

8 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
4 août 2009 à 19:44
salut

es-tu bien connecté?
car il me semble que si tu mets
integrated security
tu ne peux pas mettre id = root

bon dev
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
4 août 2009 à 22:47
Salut,

Il te faut passer par un BindingSource, tu n'as pas créé de colones dans ton DataGrid. Comme dit nhervagault, vérifi ta chaîne de connexion.


Dim CNX_Str As String = "Data Source=.\SQLEXPRESS;Initial Catalog=MaTable;Integrated Security=SSPI"
        Dim CMD_Str As String = "SELECT * FROM Matable"
        '
        Dim SQL_Connex As SqlConnection
        Dim SQL_cmd As SqlCommand
        '
        Try
            '
            SQL_Connex = New SqlConnection(CNX_Str)
            SQL_cmd = New SqlCommand(CMD_Str, SQL_Connex)
            '
            SQL_Connex.Open()
            '
            Dim BS As New BindingSource
            BS.DataSource = SQL_cmd.ExecuteReader
            DataGridView1.DataSource = BS
            '
        Catch
            '
            MessageBox.Show("Une erreur est survenue durant la connexion", _
                            "Erreur de connexion", _
                            MessageBoxButtons.OK, _
                            MessageBoxIcon.Exclamation)
            '
            If SQL_Connex IsNot Nothing AndAlso _
               SQL_Connex.State <> ConnectionState.Closed Then
                SQL_Connex.Close()
                SQL_Connex.Dispose()
            End If
            '
        End Try


Voila un petit exemple, @+

Mayzz.
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
3ING Messages postés 20 Date d'inscription mercredi 15 juillet 2009 Statut Membre Dernière intervention 1 janvier 2011
6 août 2009 à 20:27
slt mayzz
j'ai essayé le code q tu m'as proposé
y a 1 erreur au niveau de l'objet SQL_Connex.le visual studio me le souligne à ce niveau du code :
If SQL_Connex IsNot Nothing AndAlso

...

End If


merci encooooooooooooooooooooooooore
3ING++
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
6 août 2009 à 20:34
Et quel est le message?
Quand tu pointes la souris dessus.

Merci de banir le SMS.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
3ING Messages postés 20 Date d'inscription mercredi 15 juillet 2009 Statut Membre Dernière intervention 1 janvier 2011
6 août 2009 à 20:56
ah wi dsl jé oublié ça.
le msg est le suivant : la variable 'SQL_Connex' est utilisée avant qu'une valeur ne lui ait été assignée.une exception de référence null peut se produire au moment de l'exécution.

merciiiiiiiii d'avance
3ING++
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
6 août 2009 à 21:08
Mets

Dim SQL_Connex As SqlConnection = new SqlConnection()

Ou deplace le code du try catch.

Ou met
Dim SQL_Connex As SqlConnection = Nothing

Peut etre qu'en le mettant explicitement vs ne guelera pas.
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
6 août 2009 à 21:23
Non il n'y a pas d'erreur

        Dim SQL_Connex As SqlConnection' Déclare la connexion
        Dim SQL_cmd As SqlCommand
        '
        Try
            '
            SQL_Connex = New SqlConnection(CNX_Str) 'Instancie la connexion


Le message que tu as n'est qu'un simple avertissement pour te prévenir que selon le conditionnel du code, un exception peut survenir car la SQL_Connex n'aura pas été instancié (ce qui ne peut pas arrivé du fait qu'il est instancié à la première ligne du Try). De plus AndAlso assure que l'instruction n'ira pas plus loin si une erreur se produit au moment de la création de l'instance.

Si tu fais :


        Dim SQL_Connex As New SqlConnection
        Dim SQL_cmd As SqlCommand
        '
        Try
            '
            SQL_Connex = New SqlConnection(CNX_Str) 'Instancie la connexion


Tu instanciera 2 fois, ce qui bouffera des ressources système pour rien et si tu procede comme suit :

        Try
            '
          Dim SQL_Connex As New(CNX_Str) 


L'objet aura une porté réduite, et ne sera pas accèssible via le Catch. Il faut donc laisser le code tel quel, mais si cet avertissement te gène, tu peux le désactiver dans les options de Visual Studio ou faire comme suit :

        Dim SQL_Connex As New SqlConnection = Nothing
        Dim SQL_cmd As SqlCommand = Nothing
        '
        Try
            '
            SQL_Connex = New SqlConnection(CNX_Str) 'Instancie la connexion


@+ Mayzz.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
3ING Messages postés 20 Date d'inscription mercredi 15 juillet 2009 Statut Membre Dernière intervention 1 janvier 2011
6 août 2009 à 21:27
ok ça marche.jé mit Dim SQL_Connex As SqlConnection = Nothing .c bn mé le code q jé mis m'affiche r1 en niveau de l'éxecution.
merci nhervagault
3ING++
0
Rejoignez-nous