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 :

Problème avec les champ date MySql en VB.NET 2008


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 39
    Par défaut Problème avec les champ date MySql en VB.NET 2008
    Bonjour,

    je dois me connecter sur un base MySQL sur un serveur Linux depuis un programme Vb.Net 2008 sous Windows.
    J'ai bien Téléchargé les connecteurs ODBC pour .Net et je les installé... pas de problème.

    J'arrive à me connecter et à extraire des informations des tables de la base, mais à une condition : dans une commande SQL("SELECT ..."), que je ne nomme pas un champ DateTime ou que j'utilise "SELECT * FROM ..." et qu'il n'y ait pas un champ DateTime dans la table.

    Voici un exemple de code Vb.Net qui fonctionne tant que je n'utilise pas de champ DateTime :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ConMySql = New MySqlConnection(My.Settings.MySQLConnexionStringGestExped)
    ConMySql.Open()
    ChaineSQL = "SELECT * FROM RecapAff Where xxx='xxx'"
    CommandMySql = New MySqlCommand(ChaineSQL, ConMySql) 
    ReaderMySQL = CommandMySql.ExecuteReader
    ret = (ReaderMySQL.Read())
    If row Is Nothing Then
    row = New Object(ReaderMySQL.FieldCount) {}
    End If If Not ReaderMySQL.HasRows Then
    MsgBox("Il n'y a pas d'enregistrement dans la able RecapAff", MsgBoxStyle.Information)
    Else
    Do
    ReaderMySQL.GetValues(row)
    '...traitement de l'enregistrement...
    ret = ReaderMySQL.Read()
    Loop Until ret >= 0
    End If ReaderMySQL.Close() CommandMySql.Connection.Close() CommandMySql = Nothing row = Nothing ConMySql.Close()
    Mais si il y a un champ DateTime dans la table la ligne "ReaderMySQL.GetValues(row)" me renvoi une erreur :
    MySqlConversionException was unhandled. Unable to convert MySQL date/Time To System.DateTime
    Quelqu'un aurait une solution pour traiter les champs DateTime... et bien sûr je ne peut pas me passer de ces champs dans mon traitement... ?

    J'ai déjà trouver ce sujet dans d'autres forums, mais les réponses sont à coté de la question... : "ne pas utiliser MySql" ou une réponse avec un exemple SQLServeur (en VB.NET il n'y a pas de problème de Date avec SQLServeur ...) ou des réponses dans un autre langage...

    Merci d'avance

    Cordialement,
    Alain

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    étonnant ...

    déjà quelques remarques sur ton code :
    reader.Read normalement c'est un booléen, donc pourquoi le traiter comme un nombre ... le hasrows je pense qu'il est dispo après l'execute, ce qui permettrait de retirer quelques lignes de code

    New Object(ReaderMySQL.FieldCount) , moi j'aurais dit New Object(ReaderMySQL.FieldCount - 1) mais ca ne changera pas le problème

    mettre à nothing une variable de membre ne sert à rien, c'est fait automatiquement en sortie de membre (et pour les blocs aussi)

    pour les objets comme la connection il y a .dispose qui libère la mémoire


    et sur le problème :
    il y a plusieurs providers mysql je crois, et surement plusieurs versions, donc chercher là dessus déjà

    après tu nous parles d'odbc alors que tu utilises visiblement un provider .net mysql ... le framework sait gérer l'odbc en natif ; je pense que passer par un provider mysql est préférable, mais sinon par odbc tu ne devrais pas avoir le même problème

    et pour finir tu peux tenter for i as integer = 0 to fieldcount-1 tabobj(i) = reader.item(i)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 39
    Par défaut
    Bonjour,

    Merci pour la réponse

    en fait j'ai récupéré le code pour travailler avec SQLServeur (désolé pour nothing inutiles), comme il fonctionnait, j'ai essayé de l'adapter pour MySQL, j'ai téléchargé sur le site de MySQL la dernière version pour une connexion ODBC pour .NET : un fichier MSI que j'ai lancé, puis j'ai changé les déclarations d'objet de SQLServeur en MySQL) et la chaine de connexion que j'ai enregistré en paramètre : "Server=SerMySQL001;Uid=dbuser;Pwd=dbuser;Database=GestExped"... est tout fonctionne sauf les champs date

    Par contre je ne m'y connais pas suffisement pour recherche quelle version fonctionne le mieux.

    Je voulais surtout savoir si quelqu'un avait eu le même souci et comme il l'avait contourné.

    Je vais essayé ce qu etu me conseilles en espérant que ça fonctionnera.

    Merci
    Alain

Discussions similaires

  1. Champ Problème avec les type Date
    Par useretl dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 05/11/2007, 10h23
  2. [Cognos 6][Impromptu] Problème avec les champs groupés
    Par nicoduhavre dans le forum Cognos
    Réponses: 4
    Dernier message: 23/03/2007, 15h27
  3. Problème avec les champ obligatoire et liste déroulante
    Par snakejl dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/05/2006, 18h21
  4. Problème avec les champs de type table
    Par devdev dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 16/12/2004, 16h05
  5. Problème avec les paramètres date BDE/ODBC Oracle/XP Pro
    Par Bloon dans le forum Bases de données
    Réponses: 3
    Dernier message: 06/10/2004, 10h09

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