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

Signaler
-
Messages postés
14871
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
26 mai 2020
-
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

Messages postés
14871
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
26 mai 2020
409
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
merci pour votre réponse, j'ai essayer ce qui est indiquer dans le lien que vous avez posé mais ça na pas marcher!
Messages postés
14666
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
15 mai 2020
143 > hiba
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.
Messages postés
14871
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
26 mai 2020
409
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
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;
Messages postés
14871
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
26 mai 2020
409
OK et quel est le contenu de la variable req quand ça plante?
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"
Messages postés
14666
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
15 mai 2020
143 > hiba
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.
Messages postés
14871
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
26 mai 2020
409
Peut-être?

On ne peut pas déboger avec des peut-être.
Quand ça plante, tu espionnes la variable pour savoir.
hhhh, Je dis peut etre parce que a chaque fois la requete prend une forme grace à la fonction gettable()
Messages postés
14871
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
26 mai 2020
409
Ben oui, donc quand ça plante, tu espionnes la variable