ASP.NET: Afficher un message d'erreur

Résolu/Fermé
mouchkar Messages postés 8 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 29 juin 2010 - 25 juin 2010 à 14:49
 Utilisateur anonyme - 28 juin 2010 à 20:55
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

Utilisateur anonyme
26 juin 2010 à 00:17
lu,

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

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

0
mouchkar Messages postés 8 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 29 juin 2010
28 juin 2010 à 11:42
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 ....
0
Utilisateur anonyme
28 juin 2010 à 15:02
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
0
mouchkar Messages postés 8 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 29 juin 2010
28 juin 2010 à 17:39
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 ^^
0
Utilisateur anonyme
28 juin 2010 à 20:55
c'est rien ;)
bon dév.
0