IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

probleme de try catch


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 16
    Points : 8
    Points
    8
    Par défaut probleme de try catch
    Dans une appli vb, on essaye de se connecter a une base de données mais la connection echoue. Voici la partie de code qui pose probleme au niveau du try catch :

    Private Sub Connexion()

    'déclaration du constructeur de la connexion a oracle
    Dim oradb As String = "Data Source=XE;User Id=system;Password=manager"


    'déclaration de la connexion
    Dim conn As New OracleConnection(oradb)

    'ouverture de la connexion
    conn.Open()

    'pour remplacer les ' par des ''
    'autrement une erreur survient lors de l'enregistrement en base de donnees
    Dim la_date As String = System.DateTime.Now.Date()
    Dim login As String = txt_login.Text
    la_date = la_date.Replace("'", "''")
    login = login.Replace("'", "''")
    nom_corbeil = nom_corbeil.Replace("'", "''")

    'Enregistrement dans la table test de la personne ayant lancée le tranfert
    Dim requete As String = "INSERT INTO test (la_date, personne, nom_corbeil) VALUES ('" & la_date & "','" & login & "','" & nom_corbeil & "')"


    'Declaration de la commande pour l'execution de la requete
    Dim myOracleCommand As New OracleCommand(requete, conn)

    Try

    If (myOracleCommand.ExecuteNonQuery() <> 0) Then
    'La transaction peut être confirmée.
    conn.BeginTransaction().Commit()
    Else
    'Les opérations effectuées doivent être annulées.
    conn.BeginTransaction().Rollback()
    MessageBox.Show("Erreur d'écriture dans la base de données")
    End If

    Catch ex As Exception
    'Les opérations effectuées doivent être annulées.
    conn.BeginTransaction().Rollback()
    MessageBox.Show("Erreur d'écriture dans la base de données: " + ex.Message)
    End Try

    myOracleCommand.Dispose()
    conn.Close()

    End Sub
    Voici le message d'erreur obtenu :

    Erreur d'ecriture dans la base de données. ORA-00942 : table ou vue inexistante.
    En utilisant le mode debug, ca plante juste apres le Try, au niveau de :

    If (myOracleCommand.ExecuteNonQuery() <> 0) Then


    Merci pour vos reponses!

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    Try, Catch... jamais vu en VB6 mais plutôt en .NET

    Mais je me trompe peut-être...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 374
    Points : 451
    Points
    451
    Par défaut
    Bonjour,
    D'après la description de l'erreur le problème vient de la requête, essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim requete As String = "INSERT INTO NOMBDR.test (la_date, personne, nom_corbeil) VALUES ('" & la_date & "','" & login & "','" & nom_corbeil & "')"
    Placer le nom de la base de données qui contient la table car l'ouverture de la connection se fait sur la BDR par défaut.
    Tu peux aussi tester la requête dans un editeur de requête pour vérifier la syntaxe.
    Bon boulot. Jean

  4. #4
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 124
    Points : 150
    Points
    150
    Par défaut
    Hello,
    Sous Oracle y a pas de base de données par defaut (comme sous MS SQL) mais des schémas differents.
    Il est possible que le nom de la table ne soit pas en réalité TEST mais plutot user.test (si le Owner de la table s'appelle "user").
    Si c est le cas, soit tu modifie ta requete, soit tu ajoute un PUBLIC SYNONYM..

Discussions similaires

  1. probleme avec try et catch
    Par salsero1 dans le forum Struts 1
    Réponses: 2
    Dernier message: 15/11/2007, 09h02
  2. Probleme de try catch
    Par Seb33300 dans le forum Visual C++
    Réponses: 5
    Dernier message: 16/06/2007, 01h00
  3. probleme try catch, Exception
    Par Slumpy dans le forum VB.NET
    Réponses: 9
    Dernier message: 23/03/2007, 16h51
  4. Probleme de try - catch
    Par Slumpy dans le forum Langage
    Réponses: 9
    Dernier message: 19/03/2006, 14h14
  5. [Débutant] Petit probleme try catch
    Par Terminator dans le forum Langage
    Réponses: 16
    Dernier message: 30/06/2005, 14h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo