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 :

Connecter un programme VB.NET a postgresql


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de M.Max
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 90
    Par défaut Connecter un programme VB.NET a postgresql
    Bonjour à tous,

    J'ai développé un programme en VB.NET qui utilisait une bdd sql server. Je voulais le déployer sur une VM et la bdd sur une autre, sauf que lorsque je me suis rendu compte du prix de sql server j'ai commencé à faire machine arrière pour finalement utiliser postgresql..Je l'ai installé sur une debian lenny, elle est tout bien configuré et opérationnel.
    Mais ce soir j'ai voulu finir le travail pour pouvoir connecter le programme à la bdd, et là commence les problèmes.
    En gros je n'y comprend pas grand chose, je pensais que ODBC me permettait justement de me connecter à n'importe quelle base sql, sans avoir à tout reprendre.

    Cela fait des heures que je cherche et voilà où j'en suis :
    J'ai ajouté en reference de mon projet les library Npgsql et modifié quelque peu 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
     
    Imports Npgsql
     
    'Dim MainReader As SqlDataReader
    Dim MainReader As NpgsqlDataReader
    'Dim sqlconn As New SqlConnection
    Dim sqlconn As New NpgsqlConnection
    'Dim sqlcomm As New SqlCommand
    Dim sqlcomm As New NpgsqlCommand
     
    sqlconn.ConnectionString = "Server=" & MainTextBox2.Text & ";Port=5432;User Id=" & MainTextBox4.Text & ";Password=" & MainTextBox3.Text & ";Database=" & MainTextBox2.Text & ";"
    sqlconn.Open()
    sqlcomm.CommandText = "SELECT " & champ & " FROM " & selectedtable
    sqlcomm.Connection = sqlconn
    MainReader = sqlcomm.ExecuteReader
    //Traitement
    MainReader.Close()
    sqlconn.Close()
    Au mieux j'ai le droit à une ribambelle d'erreurs

    Une exception de première chance de type 'System.ArgumentException' s'est produite dans System.Data.dll
    Une exception de première chance de type 'System.InvalidOperationException' s'est produite dans System.Data.dll
    Une exception de première chance de type 'System.ArgumentException' s'est produite dans System.Data.dll
    Une exception de première chance de type 'System.InvalidOperationException' s'est produite dans System.Data.dll
    Une exception de première chance de type 'System.ArgumentException' s'est produite dans System.Data.dll
    Une exception de première chance de type 'System.InvalidOperationException' s'est produite dans System.Data.dll
    Une exception de première chance de type 'System.NullReferenceException' s'est produite dans .exe
    Une exception de première chance de type 'System.ArgumentException' s'est produite dans System.Data.dll
    Une exception de première chance de type 'System.InvalidOperationException' s'est produite dans System.Data.dll
    Une exception de première chance de type 'System.ArgumentException' s'est produite dans System.Data.dll
    Une exception de première chance de type 'System.InvalidOperationException' s'est produite dans System.Data.dll
    Une exception de première chance de type 'System.ArgumentException' s'est produite dans System.Data.dll
    Une exception de première chance de type 'System.InvalidOperationException' s'est produite dans System.Data.dll
    Une exception de première chance de type 'System.NullReferenceException' s'est produite dans .exe
    Une exception de première chance de type 'System.ArgumentException' s'est produite dans System.Data.dll
    Une exception de première chance de type 'System.InvalidOperationException' s'est produite dans System.Data.dll
    Une exception de première chance de type 'System.ArgumentException' s'est produite dans System.Data.dll
    Une exception de première chance de type 'System.InvalidOperationException' s'est produite dans System.Data.dll
    Une exception de première chance de type 'System.ArgumentException' s'est produite dans System.Data.dll
    Une exception de première chance de type 'System.InvalidOperationException' s'est produite dans System.Data.dll
    Une exception de première chance de type 'System.ArgumentException' s'est produite dans System.Data.dll
    Une exception de première chance de type 'System.InvalidOperationException' s'est produite dans System.Data.dll
    Une exception de première chance de type 'System.NullReferenceException' s'est produite dans .exe
    Une exception de première chance de type 'System.ArgumentException' s'est produite dans System.Data.dll
    ....;....
    Je suis completement perdu, auriez-vous une piste à me fournir ou du moins éclairer un peu ma lanterne quant à un moyen de connecter simplement mon prog VB à ma base postgresql.

    Merci à tous !

  2. #2
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    J'ai regarder quelque part les chaines de connexions... parmis les exemples j'ai vu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DRIVER={PostgreSQL};SERVER=192.168.1.10;port=5432;DATABASE=boutique;UID=monloginpg;PWD=monpassword;

  3. #3
    Membre confirmé Avatar de M.Max
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 90
    Par défaut
    Merci de ta réponse, mais ça ne fonctionne pas, il cherche un fichier *.cs

    Il n'y a pas un moyen d'utiliser une connexion ODBC ?

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    291
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 291
    Par défaut
    Bonjour,

    Oui on peut utiliser (entre autre ODBC) va voir de ce coté là pour les chaînes de connections:

    http://www.connectionstrings.com/postgre-sql

    D'autre part vérifie avant que tu peux te connecter (via PGADMIN) depuis ton poste client sous windows.

    Pour ma part je n'ai jamais tenté avec un client Windows et une BDD sous autre système.

    A+

  5. #5
    Membre confirmé Avatar de M.Max
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 90
    Par défaut
    J'ai réussi a créer une connexion ODBC, j'ai pu rajouter une source de donnée dans visual studio et lorsque je teste la connexion, elle est réussie.
    Ceci dit, lorsque je copie la chaine de connexion pour définir le connexion string :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlconn.ConnectionString = "Driver={PostgreSQL Unicode};database=" & MainTextBox2.Text & ";server=" & MainTextBox1.Text & ";port=" & MainTextBox5.Text & ";uid=" & MainTextBox4.Text & ";sslmode=prefer;readonly=0;protocol=7.4;fakeoidindex=0;showoidcolumn=0;rowversioning=0;showsystemtables=0;fetch=100;socket=4096;unknownsizes=0;maxvarcharsize=255;maxlongvarcharsize=8190;debug=0;commlog=0;optimizer=0;ksqo=1;usedeclarefetch=0;textaslongvarchar=1;unknownsaslongvarchar=0;boolsaschar=1;parse=0;cancelasfreestmt=0;extrasystableprefixes=dd_;lfconversion=1;updatablecursors=1;disallowpremature=0;trueisminus1=0;bi=0;byteaaslongvarbinary=0;useserversideprepare=0;lowercaseidentifier=0;xaopt=1;pwd=" & MainTextBox3.Text"
    J'ai le droit à une belle erreur :

    Mot clé non pris en charge*: 'driver'.
    Donc visual studio arrive à se logger (dans l'explorateur de serveur j'accede a la bdd sans probleme) et qd j'utilise la chaine de connexion dans le code ça me renvoit une erreur.
    Incompréhensible.

    Une idée ?

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    291
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 291
    Par défaut
    Bonjour,

    Réponse un peu tardive ...

    Merci de ta réponse, mais ça ne fonctionne pas, il cherche un fichier *.cs
    En fait il faut "pousser" le Npgsql dans le globaly assembly cache comme indiqué ici

    http://npgsql.projects.postgresql.or...serManual.html

    En voici un extrait

    Alternatively, you can put the Npgsql assembly in the Global Assembly Cache (GAC). Since version 0.4, Npgsql is strongly signed- meaning that you can use "gacutil" to install it. Simply issue the following command:

    gacutil -i Npgsql.dll

    Please refer to "Installing an Assembly in the Global Cache Assembly" section of MSDN docs for more information. Use of the GAC has implications that you should fully understand before going down this path.
    En fait il faut aussi pousser les dll de sécurité (mono.security.dll et security.2.0.Npgsql.dll).

    Après cela marche très bien. Mais attention à la syntaxe SQL ne pas oublier les schémas devant le nom de la table. Le mieux pour commencer et de générer la requête sous PGAdmin de façon à avoir la bonne syntaxe.

    A+

Discussions similaires

  1. Connection VB Net et PostgreSql
    Par Le Rebel dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 01/06/2006, 09h13
  2. Réponses: 4
    Dernier message: 28/04/2006, 23h21
  3. [VB.NET] Connection à une base vb.net avec interogation
    Par lou87 dans le forum Windows Forms
    Réponses: 11
    Dernier message: 27/02/2006, 16h56
  4. [VB.NET] Activation d'un programme VB.NET
    Par cyrcroix dans le forum Windows Forms
    Réponses: 7
    Dernier message: 03/06/2005, 12h21

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