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 :

VB.NET Problème avec mes variables


Sujet :

VB.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 212
    Points : 71
    Points
    71
    Par défaut VB.NET Problème avec mes variables
    Bonjour,

    Je vous explique mon problème d'une seconde a l'autre mon programme ne fonctionne plus. Le code plante au moment ou il rencontre une variable publique stockée dans un module.

    Lorsque je regarde le details de l'erreur il me dit qu'il lui est impossible de convertir un type integer en string alors que ma variable de depart est un string justement. Il me met le meme message d'erreur pour toute variable d'un autre type.

    Je vous affiche mon code en esperant que vous arriverez a trouver la solution !

    Merci.

    Le code :

    Le module

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
     
    Imports System.Data
    Imports System.Data.OleDb
     
    Module Module1
     
        Public ObjetConnection As OleDbConnection
        Public ObjetCommand As OleDbCommand
        Public ObjetDataAdapter As OleDbDataAdapter
        Public ObjetDataSet As New DataSet() 'Attention au New
        Public strSql As String
        Public ObjetDataTable As DataTable
        Public ObjetDataRow As DataRow
     
        Public RowNumber As Integer    'Numéro de l'enregistrement courant
        Public strConn As String
        Public ObjetCommandBuilder As OleDbCommandBuilder
     
        Public User_id, NbJrTot, NbRTT As Integer
        Public Nom, Prenom As String
        Public LVI As ListViewItem
        Public NouvDateRTT As String = ""
        Public NouvDateConges As String = ""
        Public NouvDateConges1 As String = ""
        Public NouvNbConges As Integer = 0
        Public Modification As Boolean = False
        Public Conges_id As Integer = ""
     
        Public Sub Deconnexion()
     
     
            Module1.ObjetConnection = Nothing
            Module1.ObjetCommand = Nothing
            Module1.ObjetDataAdapter = Nothing
            Module1.ObjetDataTable = Nothing
            Module1.ObjetDataRow = Nothing
            Module1.ObjetDataSet.Clear()
     
     
        End Sub
     
    End Module
    La form :

    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
     
    Private Sub Bt_Ok_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bt_Ok.Click
     
            If Me.Txt_Login.Text = "" Then
     
                MessageBox.Show("Veuillez saisir un nom d'utilisateur", "Utilisateur", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                Exit Sub
            End If
     
            If Me.Txt_Login.Text <> "" And Me.Txt_Password.Text <> "" Then
     
                Module1.strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Eric\Conges\Conges1.accdb;"
                Module1.strSql = "SELECT * FROM SALARIES WHERE Login_Salarie='" & Me.Txt_Login.Text & "' AND Password_Salarie='" & Me.Txt_Password.Text & "'"
     
     
                Module1.ObjetConnection = New OleDbConnection()
                Module1.ObjetConnection.ConnectionString = strConn
                Module1.ObjetConnection.Open()
                Module1.ObjetCommand = New OleDbCommand(strSql)
                Module1.ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
                Module1.ObjetCommand.Connection() = ObjetConnection
     
                Module1.ObjetDataAdapter.Fill(ObjetDataSet, "SALARIES")
                Module1.ObjetDataTable = ObjetDataSet.Tables("SALARIES")
     
     
                Module1.RowNumber = 0
    le programme s'arrete a la variable Module1.strConn

    le message d'erreur exact est le suivant :

    "La conversion de la chaîne "" en type 'Integer' n'est pas valide."}

  2. #2
    Membre chevronné
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Points : 2 209
    Points
    2 209
    Par défaut
    Tu as écris:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Module1.strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Eric\Conges\Conges1.accdb;"
    
    Module1.ObjetConnection.ConnectionString = strConn
    Dans la première instruction tu modifies la variable strConn du Module alors que dans la deuxième tu affectes à ConnectionString une variable nommée strConn mais pas issue du module (donc de ta form sous-entendu form.strConn).

    Présumant (à signaler si je me trompe) que tu ne travailles pas avec "Option Explicit On" ce que tu fais c'est créer une nouvelle variable (vraisemblablement du type Integer donc) et l'affecter à ConnectionString.

    Pour le vérifier c'est très simple, rajoute en début de ta form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Option Explicit On
    et il devrait te signaler que ce "strConn" n'a pas été déclaré.

    Quant à la résolution écris juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Module1.ObjetConnection.ConnectionString = Module1.strConn
    En eséprant avoir été compris et été utile...
    Nous sommes tous plus ou moins geek : ce qui est inutile nous est parfaitement indispensable ( © Celira )
    À quelle heure dormez-vous ?
    Censément, quelqu'un de sensé est censé s'exprimer sensément.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 212
    Points : 71
    Points
    71
    Par défaut
    ben en fait le probleme ne vient pas de la puisque le programme n'a pas le temps d'arriver jusque la il bloque avant des qu'il rencontre une variable du module ! J'ai meme fait le test de creer une variable toto de type string des qu'il l'a rencontre j'ai ce maudit message d'erreur

  4. #4
    Membre chevronné
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Points : 2 209
    Points
    2 209
    Par défaut
    Ce n'est pas ce que tu avais dit précédemment:
    Citation Envoyé par forsay1 Voir le message
    le programme s'arrete a la variable Module1.strConn

    le message d'erreur exact est le suivant :

    "La conversion de la chaîne "" en type 'Integer' n'est pas valide."}
    Citation Envoyé par forsay1 Voir le message
    J'ai meme fait le test de creer une variable toto de type string des qu'il l'a rencontre j'ai ce maudit message d'erreur
    Qu'as-tu exactement fait pour réaliser ce test (avec le code si possible) et quelle erreur obtiens-tu exactement stp ?
    Nous sommes tous plus ou moins geek : ce qui est inutile nous est parfaitement indispensable ( © Celira )
    À quelle heure dormez-vous ?
    Censément, quelqu'un de sensé est censé s'exprimer sensément.

Discussions similaires

  1. [MySQL] Problème avec mes variables de session
    Par mademoizel dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 07/04/2011, 22h40
  2. Problèmes avec les variables final
    Par casolaro dans le forum Langage
    Réponses: 7
    Dernier message: 09/12/2004, 14h29
  3. [VB.NET] Problème avec un OptionButton dans Excel 2003
    Par alfprod dans le forum Windows Forms
    Réponses: 3
    Dernier message: 09/09/2004, 13h40
  4. Réponses: 6
    Dernier message: 28/05/2004, 09h39
  5. Problème avec mes tables de relation...
    Par mmike dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 02/06/2003, 15h16

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