Problème en execution d'un programme sur vb.net

hiba - Modifié le 8 févr. 2020 à 13:16
Whismeril Messages postés 19036 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 mai 2024 - 8 févr. 2020 à 18:21
Bonjour, je viens de programmer sur visual basic 2010 et sql server.
j'ai connecter le programme avec ma base de donner. Quand je fait l'execution il m'affiche le message suivant:
L'exception SqlException n'a pas été gérée
invalide object name clubee <-(c'est une table dans ma base de donner).
voici mon code:

Option Strict On
Imports System.Data.SqlClient
Module Module1
    Public con As SqlConnection
    Public cmd As SqlCommand
    Public rd As SqlDataReader
    Public t As DataTable

    Sub connecter()
        Try
            con = New SqlConnection("initial catalog=dbclube;data source=DESKTOP-6IR7NSF\SQLEXPRESS;integrated security=true;")
            con.Open()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub
    Sub deconnecter()
        Try
            con.Close()
        Catch ex As Exception
            MessageBox.Show("Erreur de déconnexion!")
        End Try
    End Sub
    Function getTable(ByVal req As String) As DataTable
        cmd = New SqlCommand(req, con)
        rd = cmd.ExecuteReader
        t = New DataTable
        t.Load(rd)
        rd.Close()
        Return t
    End Function
    Function setreq(ByVal req As String) As Integer
        cmd = New SqlCommand(req, con)
        Return cmd.ExecuteNonQuery()
    End Function
End Module

AIDER MOI SVP!
Merci!

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

5 réponses

Whismeril Messages postés 19036 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 mai 2024 656
8 févr. 2020 à 12:36
Bonjour

merci de présenter ton code de façon lisible, en suivant les quelques instruction décrite là https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Merci aussi de préciser à quelle ligne apparait l'erreur
0
merci pour votre réponse, j'ai essayer ce qui est indiquer dans le lien que vous avez posé mais ça na pas marcher!
0
NHenry Messages postés 15114 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 4 mai 2024 159 > hiba
8 févr. 2020 à 13:18
J'ai ajouté la coloration syntaxique.
Avec le bout de code, je ne vois pas où ça parle de l'objet en cause.
Si cela est en lien avec une requête SQL, il serait bien de la voir.
0
Whismeril Messages postés 19036 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 mai 2024 656
8 févr. 2020 à 13:21
Merci NHenry, effectivement, je ne voies nulle part où il est question de clubee.

Hiba, il est donc important que tu nous dises quelle ligne génère l'erreur
0
Oui biensur c'est la ligne de: rd = cmd.ExecuteReader
et voici mon code sur sql server:

create database dbclube;
create table clubee(codecl int primary key, nomcl varchar(50), emailcl varchar(40), telcl varchar(40));
create table membre(codem int primary key, nomm varchar(50), prenomm varchar(50), emailm varchar(40), telm varchar(50), codecl int);
insert into membre(codem, nomm, prenomm, emailm, telm, codecl)values(1, 'Kadiri', 'Amine', '***@***', '0681152', 2),(2, 'Fahmi', 'Amina', '***@***', '0681152', 3),(3, 'Swiri', 'Mourad', '***@***', '0681152', 4);
select * from membre;
0
Whismeril Messages postés 19036 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 mai 2024 656
8 févr. 2020 à 14:40
OK et quel est le contenu de la variable req quand ça plante?
0
voici mon code sur form1:

Option Strict On
Public Class Form1
    Sub chargerclub()
        cbclub.DisplayMember = "nomcl"
        cbclub.ValueMember = "codecl"
        cbclub.DataSource = getTable("select*from clubee")
    End Sub
    Sub listermembre(ByVal n As String)
        Dim req As String
        req = "select codem as [Code], nomm as [Nom de famille], prenomm as [Nom propre] emailm as [Email], nomcl as [club] from membre m inner join clubee c on m.nomcl=c.nomcl"
        dgvliste.DataSource = getTable(req)
    End Sub
    Function formvalide() As Boolean
        If txtnom.Text.Trim.Equals("") Or txtprenom.Text.Trim.Equals("") Or txtemail.Text.Trim.Equals("") Or txttel.Text.Trim.Equals("") Then
            Return False
        End If
        Return True
    End Function

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        connecter()
        chargerclub()
        listermembre("")
    End Sub

    Private Sub txtsearch_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtsearch.TextChanged
        listermembre(txtsearch.Text)
    End Sub
    Sub nouvelcode()
        Dim x As DataTable = getTable("select max(codem)from membre")
        Dim n As Integer = CInt(x.Rows(0).Item(0).ToString)
        n += 1
        txtcode.Text = n.ToString
    End Sub

    Private Sub cmbcode_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbcode.Click
        nouvelcode()
    End Sub

    Private Sub cmbEnregistrer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbEnregistrer.Click
        If Not formvalide() Then
            MessageBox.Show("formulaire invalide")
            Exit Sub
        End If
        Dim r As String = "insert into membre values(" + txtcode.Text + ",'" + txtnom.Text + "','" + txtprenom.Text + "','" + txtemail.Text + "','" + txttel.Text + "'," + cbclub.SelectedValue.ToString + ")"
        setreq(r)
        listermembre("")
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim pos As Integer = dgvliste.CurrentRow.Index
        If pos = -1 Then Exit Sub
        Dim n As Integer = CInt(dgvliste.Rows(pos).Cells(0).Value.ToString)
        Dim rep As DialogResult = MessageBox.Show("delete?", "choix", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)
        If rep <> DialogResult.Yes Then Exit Sub
        Dim r As String = "delete from membre where codem=" + n.ToString
        setreq(r)
        listermembre("")
    End Sub
End Class
<code basic>
</code>
peut etre que c'est "select * from clubee"
0
NHenry Messages postés 15114 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 4 mai 2024 159 > hiba
8 févr. 2020 à 17:16
Il ne manque pas des espaces dans cette requête ?

Aussi, dans les nom des champs et tables on évites les espaces et les caractères hors A-Z0-9.
0
Whismeril Messages postés 19036 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 mai 2024 656
8 févr. 2020 à 17:31
Peut-être?

On ne peut pas déboger avec des peut-être.
Quand ça plante, tu espionnes la variable pour savoir.
0
hhhh, Je dis peut etre parce que a chaque fois la requete prend une forme grace à la fonction gettable()
0

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

Posez votre question
Whismeril Messages postés 19036 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 mai 2024 656
8 févr. 2020 à 18:21
Ben oui, donc quand ça plante, tu espionnes la variable
0
Rejoignez-nous