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

Windows Forms Discussion :

[VB.NET]] pb avec OpenFileDialog et BD


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Par défaut [VB.NET]] pb avec OpenFileDialog et BD
    Bonjour,
    Voila, j'ai un petit problème que je n'arrive pas à expliquer. Je recupère le chemin d'un fichier grâce à un objet OpenFileDialog. Ce chemin s'affiche alors dans une textbox. Ensuite, lorsque je ferme le formulaire, une requête s'exécute et met à jour un champs contenant le chemin en question. Bizarrement, lorsque j'effectue cette procédure, ca plante au niveau de la connection à la base de données (pas dans la requete). Par contre, si j'ecris directement dans la textbox, ca marche parfaitement.
    Alors, je me demande si l'utilisation du OpenFileDialog n'interfère pas sur la connection avec la base de données.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    fonction de recherche du chemin du fichier :
        Private Sub bt_open_file_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_open_file.Click
            Dim open_file As New OpenFileDialog()
            With open_file
                .Multiselect = False
                .CheckFileExists = True
            End With
     
            If open_file.ShowDialog = DialogResult.OK Then
                tb_file.Text = open_file.FileName()
            End If
        End Sub

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Fonction de fermeture du formulaire :
        Private Sub parametres_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
     
            Dim couleur As Integer
            If rad_1.Checked = True Then
                couleur = 1
            End If
            If rad_2.Checked = True Then
                couleur = 2
            End If
            If rad_3.Checked = True Then
                couleur = 3
            End If
     
            ' modification des paramètres
            Dim req_para As String = _
        "Update parametres P set P.couleur=" & couleur & ", P.image='" & tb_file.Text & "', P.nom_equipe='" & tb_nom_equipe.Text & "' where (P.num=1)"
            MsgBox(req_para)
            cn.Open()
            Dim cde_para As New OleDbCommand(req_para, cn)
            cde_para.ExecuteNonQuery()
            cn.Close()
     
            Dim menu As New menu()
            menu.Show()
            Me.Hide()
        End Sub
    Voila, j'espère que vous aurez compris, et que vous pourrez m'aider...
    Merci[/code]

  2. #2
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    pour tout ce qui concerne les procedures de connection je ne saurais trop te conseiller de les catcher car les types d'exception sont nombreux et très différents donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim cde_para As OleDbCommand
    try
       cn.Open() 
       cde = New OleDbCommand(req_para, cn) 
       cde_para.ExecuteNonQuery() 
    catch ex as exception
       msgbox(ex.Message)
    finally
       if not(cn is nothing) then cn.Close()
    end try
    fais nous part du message d'exception complet, si possible debugges pas à pas pour repérer la ligne du code exacte qui lève l'exception

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Par défaut ah, je commence à comprendre
    Voila ce que j'ai mis pour les paramètres de ma connection.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Dim strcn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=equipe.mdb"
        Public cn As New OleDb.OleDbConnection(strcn)
    En fait, lorsque j'ouvre ma connection à la BD, le repertoire dans lequel le programme cherche la base de données devient celui que j'ai selectionné dans mon OpenFileDialog.
    Donc, il faudrait que je trouve une solution pour rétablir le répertoire par défaut après avoir selectionné mon fichier.

    Quelqu'un saurait comment on fait ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Par défaut résolu !
    Voila, j'ai trouvé une solution.
    j'utilise un objet System.IO.Directory qui me permet de récupérer le fichier courant au chargement du formulaire, et je rétablie ce répertoire avant la connection à la base. Et voila !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Dim rep As System.IO.Directory
        Dim rep_str As String
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Private Sub parametres_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            rep_str = rep.GetCurrentDirectory()
    End Sub

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
       Private Sub parametres_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
     
            Dim req_para As String = _
        "Update parametres P set P.couleur=" & couleur & ", P.image='" & tb_file.Text & "', P.nom_equipe='" & tb_nom_equipe.Text & "' where (P.num=1)"
            rep.SetCurrentDirectory(rep_str)
     
            cn.Open()
            Dim cde_para As New OleDbCommand(req_para, cn)
            cde_para.ExecuteNonQuery()
            cn.Close()
    End Sub
    Merci @+

  5. #5
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/10/2006, 15h09
  2. [VB.NET] Problème avec OpenFileDialog
    Par Lahouari dans le forum Windows Forms
    Réponses: 5
    Dernier message: 03/03/2005, 15h41
  3. [VB.Net] Probleme avec dialogues (confirm et alert)
    Par crackity_jones666 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 26/11/2003, 22h05
  4. [IB v7.1][C#][ADO.NET] Démarrer avec IB 71
    Par BoeufBrocoli dans le forum InterBase
    Réponses: 14
    Dernier message: 05/08/2003, 12h25

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