Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Execption levée lors de l'exécution d'1 2e requete

1 réponse
Avatar
Bonjour,

Dans 1 application VB .Net 2008 Express, je gère 2 bases de données SQL
Server 2008 Express (1 base appli, et 1 base projet).

Pas de problème avec la base 1.

Avec la base 2, j'ai 1 petit soucis incompréhensible.

Dans cette base, j'ai 2 tables.
Conception[Numéro, Champs1, Champs2]
Numéro est la clef primaire de type int sans incrémentation automatique
(c'est fait exprès car la table a soit 0 soit 1 seule occurence)
Il n'y a pas de problème particulier pour cette table lorsque j'exécute la
requête :
req = "Select * From Conception Where Numéro=0"

sc = New SqlCommand(req, connection_bdd_projet)

sdr = sc.ExecuteReader

If sdr.HasRows AndAlso sdr.Read Then

L'objet sdr est bien créé, et dans mon cas, pour le moment, sdr.HasRows =
False (pas d'occurence dans la table)

A la fin du traitement de cette table, le SqlDataReader est fermé avec :

sdr.Close()

A noter que connection_bdd_projet est 1 SqlConnection qui a à ce moment la
propriété State=ConnectionState.Open.

Par contre, mon problème apparaît dans la 2e table :

ConceptionComposants[NuméroAuto, NuméroElément, NuméroBranche,
NuméroComposant]

Tous les champs sont de type int et NuméroAuto est la clef primaire avec
incrémentation automatique.

Mais cette fois-ci ExecuteReader provoque 1 erreur :

req = "Select * From ConceptionComposants"

sc = New SqlCommand(req, connection_bdd_projet)

sdr = sc.ExecuteReader

La dernière commande refuse de s'exécuter et lève 1 exception :

L'exception SqlExeption n'a pas été gérée

Nom d'objet 'ConceptionComposants' non valide.

Pourtant, j'ai fait 1 copier coller du nom de la table à partir du
concepteur pour éviter toute faute de frappe, et j'ai même supprimé et
recréé la table, mais l'erreur persiste.



Merci d'avance pour votre aide,

Stéphane



PS : Je remet le code de la procédure pour 1 meilleure lisibilité :

Sub charge_bdd_projet()

Dim req As String

Dim sdr As SqlDataReader

Dim sc As SqlCommand

req = "Select * From Conception Where Numéro=0"

sc = New SqlCommand(req, connection_bdd_projet)

sdr = sc.ExecuteReader

If sdr.HasRows AndAlso sdr.Read Then

'Traitement

End If

sdr.Close()

req = "Select * From ConceptionComposants"

sc = New SqlCommand(req, connection_bdd_projet)

sdr = sc.ExecuteReader 'Exception générée

1 réponse

Avatar
Problème réglé,
je travaillais avec 1 ancienne version de base de données où cette table
n'existait pas encore !


<Stéphane> a écrit dans le message de news:

Bonjour,

Dans 1 application VB .Net 2008 Express, je gère 2 bases de données SQL
Server 2008 Express (1 base appli, et 1 base projet).

Pas de problème avec la base 1.

Avec la base 2, j'ai 1 petit soucis incompréhensible.

Dans cette base, j'ai 2 tables.
Conception[Numéro, Champs1, Champs2]
Numéro est la clef primaire de type int sans incrémentation automatique
(c'est fait exprès car la table a soit 0 soit 1 seule occurence)
Il n'y a pas de problème particulier pour cette table lorsque j'exécute la
requête :
req = "Select * From Conception Where Numéro=0"

sc = New SqlCommand(req, connection_bdd_projet)

sdr = sc.ExecuteReader

If sdr.HasRows AndAlso sdr.Read Then

L'objet sdr est bien créé, et dans mon cas, pour le moment, sdr.HasRows =
False (pas d'occurence dans la table)

A la fin du traitement de cette table, le SqlDataReader est fermé avec :

sdr.Close()

A noter que connection_bdd_projet est 1 SqlConnection qui a à ce moment la
propriété State=ConnectionState.Open.

Par contre, mon problème apparaît dans la 2e table :

ConceptionComposants[NuméroAuto, NuméroElément, NuméroBranche,
NuméroComposant]

Tous les champs sont de type int et NuméroAuto est la clef primaire avec
incrémentation automatique.

Mais cette fois-ci ExecuteReader provoque 1 erreur :

req = "Select * From ConceptionComposants"

sc = New SqlCommand(req, connection_bdd_projet)

sdr = sc.ExecuteReader

La dernière commande refuse de s'exécuter et lève 1 exception :

L'exception SqlExeption n'a pas été gérée

Nom d'objet 'ConceptionComposants' non valide.

Pourtant, j'ai fait 1 copier coller du nom de la table à partir du
concepteur pour éviter toute faute de frappe, et j'ai même supprimé et
recréé la table, mais l'erreur persiste.



Merci d'avance pour votre aide,

Stéphane



PS : Je remet le code de la procédure pour 1 meilleure lisibilité :

Sub charge_bdd_projet()

Dim req As String

Dim sdr As SqlDataReader

Dim sc As SqlCommand

req = "Select * From Conception Where Numéro=0"

sc = New SqlCommand(req, connection_bdd_projet)

sdr = sc.ExecuteReader

If sdr.HasRows AndAlso sdr.Read Then

'Traitement

End If

sdr.Close()

req = "Select * From ConceptionComposants"

sc = New SqlCommand(req, connection_bdd_projet)

sdr = sc.ExecuteReader 'Exception générée