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 :

Excel Problème de reconnaissance des valeurs


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 90
    Par défaut Excel Problème de reconnaissance des valeurs
    Bonjour,
    Dans le cadre d'un développement SSIS , je dois modifier un code en VB.Net qui met à jour le contenu d'un fichier Excel

    Pour se faire, des lignes sont numerotées et dans une boucle avec un compteur, je met a jour la ligne dont WHERE F1=compteur

    le probleme est que, dès qu'il s'agit d'un numero, deux cas de figures se presentes (j'ai simplifié un exemple de requete):

    si j'ecris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cmd.CommandText = "UPDATE [Feuil1$] SET F2='TEST' WHERE F1 ='1'"
    cmd.ExecuteNonQuery()
    avec des cotes entre le 1, il ne reconnait pas la valeur, elle n'existe pas.


    si j'ecris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cmd.CommandText = "UPDATE [Feuil1$] SET F2='TEST' WHERE F1 =1"
    cmd.ExecuteNonQuery()
    donc sans les cotes, il me pete dans les doigts

    Par contre, si a la place des numeros de lignes, je met du texte, cela fonctionne

    voici ma chaine de connexion au fichier excel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" + Dts.Variables("SOURCE").Value.ToString + strFilename & _
    ";Extended Properties=""Excel 8.0;HDR=NO"""

    Donc pour résumer, dans mon fichier excel, j'ai des une colonne avec des lignes numérotées.
    je veux juste pouvoir modifier la ligne X avec des données que j'ai dans un dataset.

    Çà fait des lustres que je stagne la dessus, j'avoue commencer a craquer.
    J'ai farfouillé sur le net, il y a bien une méthode qui consiste a ajouter IMEX=1, mais cela passe le pilote en mode d'import. Donc oui, avec un select je récupère bien mes numéros, mais je ne peux pas faire des updates.

    Y a peut être pas de solution non plus, mais si c'est le cas, dites le moi, ça m’évitera de me taper la tête contre les murs

    please, help !

    Merci a tous

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 90
    Par défaut
    je précise que j'ai testé avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Provider=Microsoft.ACE.OLEDB.12.0
    cela marche mais l'ennui est que sur le serveur cible ou sera exécuté le code, il n'est pas certain que le pilote soit installé (Environnement 2005).

  3. #3
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    voir le FAQ

  4. #4
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    essaies ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    string SqlCommand="UPDATE [Feuil1$] SET F2='TEST' WHERE F1 =@F"
     
    SqlCommand command = new SqlCommand(commandText, connection);
            command.Parameters.Add("@F", SqlDbType.Int);
            command.Parameters["@F"].Value = 1;
    cmd.ExecuteNonQuery()

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 90
    Par défaut
    OK,
    je vais convertir cela en VB puis tester

    Merci

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 90
    Par défaut
    Bon, je n'y arrive pas avec cette methode

    Je vais demander une migration du pilote sur le serveur, et utiliser la version 12.0

    Merci encore pour ton aide

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 20/11/2007, 18h28
  2. Réponses: 2
    Dernier message: 21/09/2007, 11h37
  3. Problème pour forcer des valeurs d'un tableau
    Par n][co dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 25/04/2007, 20h59
  4. [SQL] Problème de récupération des valeurs d'une liste multiple en php
    Par BOLARD dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 01/05/2006, 00h29
  5. [FLASH MX2004] Problème de reconnaissance des caractères
    Par Spikefreeman dans le forum Flash
    Réponses: 10
    Dernier message: 04/01/2005, 23h08

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