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 :

Aide sur connexion ADODB Firebird/Vb.net [Débutant]


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Points : 22
    Points
    22
    Par défaut Aide sur connexion ADODB Firebird/Vb.net
    Bonjour à tous,

    Je débute dans la base de données, les instructions SQL etc...

    Mon but : récupérer et afficher dans un label la valeur du champ BECTPREMSP de la table BESOIN où le champ BEKNRANG=44428...

    Voici mon code, la connexion à l'air de fonctionner, l'instruction de commande SQL à l'air également, je n'ai pas d'erreur...
    Mais ensuite je ne sais pas comment affecter par exemple à un label la valeur trouvée dans ma 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
    13
    14
     
     Dim Cn As ADODB.Connection
            Dim Cm As ADODB.Command
            Dim Rs As ADODB.Recordset
     
            Cn = New ADODB.Connection
            Cn.Open("DRIVER=Firebird/InterBase(r) driver;SERVER=\\srv-adfiles;DATABASE=\\srv-adfiles\C:\Program Files\Firebird2\bin\pmi.fdb;UID=GTI;PWD=GTI")
            Cm = New ADODB.Command
            With Cm
                .ActiveConnection = Cn
                .CommandText = "SELECT BECTPREMSP FROM BESOIN WHERE BEKNRANG=44428;"
                Rs = .Execute
     
            End With
    Merci pour votre aide

  2. #2
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Tu devrais avoir un truc du genre (attention code non testé et taper à la volée)

    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
     
    Dim Cn As ADODB.Connection
    Dim Cm As ADODB.Command
    Dim Rs As ADODB.Recordset
     
    Cn = New ADODB.Connection
    Cn.Open("DRIVER=Firebird/InterBase(r) driver;SERVER=\\srv-adfiles;DATABASE=\\srv-adfiles\C:\Program Files\Firebird2\bin\pmi.fdb;UID=GTI;PWD=GTI")
    Cm = New ADODB.Command
    With Cm
    .ActiveConnection = Cn
    .CommandText = "SELECT BECTPREMSP FROM BESOIN WHERE BEKNRANG=44428;"
    Rs = .Execute
     
    if rs.read() then
    TonLabel.content = rs("BECTPREMSP ").ToString()
     
    end if
     
    rs.close()
    End With
    (J'ai plus l'habitude en C# pour le moment donc j'ai peut être fait une ou deux petites erreurs de syntaxe).
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Points : 22
    Points
    22
    Par défaut
    Bonjour infosam76,

    Merci pour ta réponse.
    J'obtient l'erreur suivante :

    Le membre public 'read' du type 'RecordsetClass' est introuvable.
    Dans le code :


    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
     Dim Cn As ADODB.Connection
            Dim Cm As ADODB.Command
            Dim Rs As ADODB.Recordset
    
            Cn = New ADODB.Connection
            Cn.Open("DRIVER=Firebird/InterBase(r) driver;SERVER=\\srv-adfiles;DATABASE=\\srv-adfiles\C:\Program Files\Firebird2\bin\pmi.fdb;UID=GTI;PWD=GTI")
            Cm = New ADODB.Command
            With Cm
                .ActiveConnection = Cn
                .CommandText = "SELECT BECTPREMSP FROM BESOIN WHERE BEKNRANG=44428;"
                Rs = .Execute
    
    
    
                If Rs.read Then
                    Label2.Text = Rs("BECTPREMSP ").ToString()
    
                End If
                Rs.Close()
    
            End With
    Je recherche le pourquoi du comment de mon coté en parallèle... bonne journée !

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    y avait pas une histoire de movenext et not eof à l'époque plutot que .read ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Points : 22
    Points
    22
    Par défaut
    Bon... Après quelques recherches j'ai trouvé ce code sur le site microsoft et j'avance un peu... avec le code suivant :

    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
     
            Dim cn As New ADODB.Connection()
            cn.ConnectionString = "DRIVER=Firebird/InterBase(r) driver;SERVER=\\srv-adfiles;DATABASE=\\srv-adfiles\C:\Program Files\Firebird2\bin\pmi.fdb;UID=GTI;PWD=GTI"
            cn.Open()
     
            Dim rs As New ADODB.Recordset()
            rs.CursorLocation = ADODB.CursorLocationEnum.adUseClient
            rs.CursorType = ADODB.CursorTypeEnum.adOpenStatic
            rs.LockType = ADODB.LockTypeEnum.adLockBatchOptimistic
            rs.Open("SELECT BECTPREMSP FROM BESOIN WHERE BEKNRANG=44428", cn)
            rs.ActiveConnection = Nothing
            cn.Close()
     
            Dim da As New System.Data.OleDb.OleDbDataAdapter()
            Dim ds As New DataSet()
            da.Fill(ds, rs, "products")
     
            Label2.Text = ds.Tables(0).Rows.Count.ToString
    J'arrive à afficher le nombre d'enregistrements, c'est que la connexion est ok.
    Comment l'adapter pour afficher la valeur cherchée et non le nombre d'enregistrements ?

    Merci

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    y avait pas une histoire de movenext et not eof à l'époque plutot que .read ?
    J'ai regardé de ce coté mais rien trouvé de bien intéressant... je continue

  7. #7
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    j'ai vérifié à tout hasard (ne connaissant pas firebird) mais il y a bien un connecteur pour .net (ado.net)
    ADODB et les recordsets ca n'est plus utilisé depuis plus de 10 ans en théorie

    http://www.firebirdsql.org/en/net-provider/
    http://www.firebirdsql.org/en/net-examples-of-use/
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Points : 22
    Points
    22
    Par défaut
    Bien vu Pol63,

    Ça à l'air d'être pas mal du tout, mais j'ai l'impression de reculer... je n'arrive même pas à me connecter à ma base...

    Erreur :

    Impossible de charger la DLL 'fbembed': Le module spécifié est introuvable. (Exception de HRESULT : 0x8007007E)
    Code :

    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
     
     
            Dim connectionString As String = "User=GTI;" & "Password=GTI;" & "Database=\\srv-adfiles\C:\Program Files\Firebird2\bin\pmi.fdb;" & "DataSource=\\srv-adfiles;" & "Port=3050;" & "Dialect=3;" & "Charset=NONE;" & "Role=;" & "Connection lifetime=15;" & "Pooling=true;" & "MinPoolSize=0;" & "MaxPoolSize=50;" & "Packet Size=8192;" & "ServerType=1"
     
            ' Set the ServerType to 1 for connect to the embedded server
            Dim myConnection1 As New FbConnection(connectionString)
     
            myConnection1.Open()
            Dim readCommand As New FbCommand("SELECT BECTPREMSP FROM BESOIN WHERE BEKNRANG=44428", myConnection1)
            Dim myreader As FbDataReader = readCommand.ExecuteReader()
            While myreader.Read()
                ' load the combobox with the names of the people inside.
                ' myreader[0] reads from the 1st Column
                COMBOBOX1.Items.Add(myreader(0))
            End While
            myreader.Close()
            ' we are done with the reader
    Pourtant je n'ai pas ajouté de fichier fbembed.dll dans les références, juste celle ci : FirebirdSql.Data.FirebirdClient.dll ...

  9. #9
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    quand on a un message d'erreur il faut le googler
    il y a des gens avec le même message d'erreur qui ont réussi à corriger
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    y avait pas une histoire de movenext et not eof à l'époque plutot que .read ?
    C'est la syntaxe que j'utilise toujours en VB6 cela. Je n'ai pas souvenir que cela a existé en .net. Mtn à par pour des routines assez spécifiques je travaille beaucoup avec les DataAdapter et Dataset.
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    quand on a un message d'erreur il faut le googler
    il y a des gens avec le même message d'erreur qui ont réussi à corriger
    J'ai réussi à trouver mon fichier fbembed.dll, l'ai placé dans le fichier debug...

    Maintenant j'ai autre erreur, d'après ce que j'ai compris lié au framework, car il me dis que la dll de Firbird à été conçue sous Framework 4.5, alors que mon projet était en 4.0...
    J'ai donc installé le framework 4.5...
    Visiblement il faut Visual studio 2012 pour utiliser le 4.5...
    Sauf que visiblement pour utiliser Visual studio 2012 il faut être sous Windows 8...


  12. #12
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par infosam76 Voir le message
    C'est la syntaxe que j'utilise toujours en VB6 cela. Je n'ai pas souvenir que cela a existé en .net. Mtn à par pour des routines assez spécifiques je travaille beaucoup avec les DataAdapter et Dataset.
    pas compris, mais en .net on utilise ado.net, pas des recordset de l'époque


    Citation Envoyé par botbot Voir le message
    Maintenant j'ai autre erreur, d'après ce que j'ai compris lié au framework, car il me dis que la dll de Firbird à été conçue sous Framework 4.5, alors que mon projet était en 4.0...
    relis la page de téléchargement du provider (entièrement)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  13. #13
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    pas compris, mais en .net on utilise ado.net, pas des recordset de l'époque
    Je disais que j'utilisais toujours les EOf et MoveNext mais en programation VB6 (pas le choix).

    Et que j'utilisais toujours des recordset mais dans très peu de cas.
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Points : 22
    Points
    22
    Par défaut
    Pol63,

    exact, je vais me racheter des lunettes...

    Bon, entre temps, j'ai trouvé solution à mon problème, via "l'ancienne" méthode...

    Si besoin je resterai correctement avec la dll fierbird. Pour info voici mon code :

    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
    44
    45
     
     
            Dim cn As New ADODB.Connection()
     
            Dim codew As String
     
            codew = TextBox1.Text
            codew = codew.Remove(0, 1)
     
            cn.ConnectionString = "DRIVER=Firebird/InterBase(r) driver;SERVER=\\srv-adfiles;DATABASE=\\srv-adfiles\C:\Program Files\Firebird2\bin\pmi.fdb;UID=GTI;PWD=GTI"
            cn.Open()
     
            Dim rs1 As New ADODB.Recordset()
            rs1.CursorLocation = ADODB.CursorLocationEnum.adUseClient
            rs1.CursorType = ADODB.CursorTypeEnum.adOpenStatic
            rs1.LockType = ADODB.LockTypeEnum.adLockBatchOptimistic
            rs1.Open("SELECT BEKTNUMERO FROM BESOIN WHERE BEKNRANG=" & codew, cn)
            rs1.ActiveConnection = Nothing
     
            Dim rs2 As New ADODB.Recordset()
            rs2.CursorLocation = ADODB.CursorLocationEnum.adUseClient
            rs2.CursorType = ADODB.CursorTypeEnum.adOpenStatic
            rs2.LockType = ADODB.LockTypeEnum.adLockBatchOptimistic
            rs2.Open("SELECT BECSSALIVR FROM BESOIN WHERE BEKNRANG=" & codew, cn)
            rs2.ActiveConnection = Nothing
     
            Dim rs3 As New ADODB.Recordset()
            rs3.CursorLocation = ADODB.CursorLocationEnum.adUseClient
            rs3.CursorType = ADODB.CursorTypeEnum.adOpenStatic
            rs3.LockType = ADODB.LockTypeEnum.adLockBatchOptimistic
            rs3.Open("SELECT BECTPREMSP FROM BESOIN WHERE BEKNRANG=" & codew, cn)
            rs3.ActiveConnection = Nothing
     
            cn.Close()
     
            Dim da As New System.Data.OleDb.OleDbDataAdapter()
            Dim ds1 As New DataSet()
            da.Fill(ds1, rs1, "Commande")
            Label2.Text = Label2.Text & " " & (ds1.Tables(0).Rows(0).Item(0).ToString)
            Dim ds2 As New DataSet()
            da.Fill(ds2, rs2, "Délai")
            Label3.Text = Label3.Text & " " & (ds2.Tables(0).Rows(0).Item(0).ToString)
            Dim ds3 As New DataSet()
            da.Fill(ds3, rs3, "N°KIT")
            Label12.Text = Label12.Text & " " & (ds3.Tables(0).Rows(0).Item(0).ToString)
    En tout cas merci à vous deux pour votre aide

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/07/2006, 16h47
  2. [VB6] Erreur sur Connexion Adodb
    Par jerzy59 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 09/05/2006, 10h44
  3. Aide sur Firebird embedded
    Par [DreaMs] dans le forum Bases de données
    Réponses: 1
    Dernier message: 21/02/2006, 12h21
  4. [VB.NET] Aide sur ListView
    Par vijeo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 13/02/2006, 20h37
  5. [VB.NET]Aide sur les process
    Par Dnx dans le forum Windows Forms
    Réponses: 2
    Dernier message: 19/10/2005, 15h13

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