ASP.NET: Afficher un message d'erreur [Résolu/Fermé]

Signaler
Messages postés
8
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
29 juin 2010
-
 Utilisateur anonyme -
Bonjour tout le monde,
Je suis débutant en asp.net, j'ai fait une methode qui permet l'affichage des données des table de ma base de données sql.server, tout marche très bien sauf quand la table indiquer dans la requete n'existe pas, dans ce cas j'obtient l'erreur suivante : nom_table:nom d'objet incorrect.

Ce que je veux c'est quand la table n'existe pas afficher un message personnaliser, ou afficher le datagrid vide au lieu de cette page jaune ;)

        req_cmd = "select * from nom_table'"
        cmd = New SqlCommand(req_cmd)
        cmd.Connection() = con
        da = New SqlDataAdapter(cmd)
        da.Fill(ds, "TradeStat")


j'obtient l'erreur dans la ligne en gras

Merci pour votre aide ^^

2 réponses


lu,

pour résoudre ton probléme tu dois tester si ta table existe:

select*from ta_bd..sysobjects where name='ta_table'

Messages postés
8
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
29 juin 2010

Merci,
C'est exactement la première chose à laquelle j'avais penser mais je ne sais pas comment procédé, est ce que je dois passer par un datareader ? dataset ? ou quoi exactement ....

ya pas mal de façon pour faire comme datareader dataset les procedures stockées les commandes etc...

voilà comment tu peux tester avec un datareader:

Dim connection As New SqlConnection("server=.;database=ta_bd;integrated security=sspi")
Dim cmd As New SqlCommand("select*from ta_bd..sysobjects where name='ta_table'", connection)
connection.Open()
test_dr = cmd.ExecuteReader
If test_dr.HasRows Then
test_dr.Read()
MsgBox("La table " & test_dr(0).ToString & " est existante")
test_dr.Close()
Else
MsgBox("La table est inexistante")
End If
Messages postés
8
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
29 juin 2010

Merci c'est justement ce que je cherchais, au fait ce qu'il me fallait c'est la ligne :
If test_dr.HasRows Then

Avant de lire votre réponse j'ai utilisé le try / Catch, je trouve que c'est pratique surtout que j'ai pas besoin de faire une 2eme requete qui teste l'existence de la table et ça marche nickle.

Merci de votre aide ^^
Utilisateur anonyme
c'est rien ;)
bon dév.