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 lors de l'instruction INSERT + SQL SERVER CE


Sujet :

VB.NET

  1. #1
    Invité
    Invité(e)
    Par défaut Problème lors de l'instruction INSERT + SQL SERVER CE
    Bonjour la communauté, je suis confronté à un petit problème, j'ai ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Function ConnectBDD() As SqlCeConnection
            Dim BDDPath$ = Path.GetTempPath & "database_energie.sdf"
            File.WriteAllBytes(BDDPath, My.Resources.database_energie)
            Dim Connexion As New SqlCeConnection("Data Source= " & BDDPath)
     
            Connexion.Open()
            Return Connexion
    End Function
    La connexion à la base de données fonctionne parfaitement, néanmoins lorsque je fais une intruction INSERT via ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim connexion As SqlCeConnection = ConnectBDD()
    Dim Requete As String = "INSERT INTO t_energie_electricite (heures_pleines, heures_creuses, date_releve) VALUES ( 1111,1111, '');"
    Dim Commande As New SqlCeCommand(Requete, connexion)
    Commande.ExecuteNonQuery()
    connexion.Dispose()
    connexion.Close()
    Je n'ai aucune erreur mais aucune entrée ce fait dans ma table... En revanche les instructions SELECT ET DROP fonctionnent.

    Avez vous des idées ??

    J'utilise Visual Studio 2013

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Tu place '' dans date relevé, est-ce un string ? Si oui les texte vide sont autorisées?
    Remplace '' par null
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim connexion As SqlCeConnection = ConnectBDD()
    Dim Requete As String = "INSERT INTO t_energie_electricite (heures_pleines, heures_creuses, date_releve) VALUES ( 1111,1111, null);"
    Dim Commande As New SqlCeCommand(Requete, connexion)
    Commande.ExecuteNonQuery()
    connexion.Dispose()
    connexion.Close()

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Non ce n'est pas un problème au niveau de l'insertion SQL, Le champ peut accepter des valeur null (uniquement pour la phase de test)

    Le problème viens de la base SQL embarqué, si je mets ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Function ConnectBDD() As SqlCeConnection
            Dim BDDPath$ = Path.GetTempPath & "database_energie.sdf"
            File.WriteAllBytes(BDDPath, My.Resources.database_energie)
            Dim Connexion As New SqlCeConnection("Data Source= " & BDDPath)
     
            Connexion.Open()
            Return Connexion
    End Function
    La commande SQL ne fonctionne pas, en revanche si je mets ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     Function ConnectBDD() As SqlCeConnection
            Dim Connexion As New SqlCeConnection("Data Source= database_energie.sdf")
     
            Connexion.Open()
            Return Connexion
    End Function
    Cela fonctionne parfaitement, en revanche je ne peux plus exporter ma base de données a travers l'application.

    Des idées ?

    Merci d'avance

  4. #4
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    C'est donc un problème dans la construction de ta connectionstring.

    Que retourne Path.GetTempPath ? Il y a bien un "\" à la fin ?

    Attention aussi que sur une ligne ta variable se nomme BDDPath$ et sur l'autre BDDPath. J'imagine une faute de frappe sinon l'erreur vient de là
    Kropernic

  5. #5
    Invité
    Invité(e)
    Par défaut
    Je n'ai pas de problème d'accès à la base de données via la première méthode, car j'arrive a récupérer des informations via la commande SELECT.

    Je testerai quand même mais je ne pense pas que ce soit la solution

  6. #6
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Qu'en est-il à propos de ce "$" qui vient parasiter le nom de la variable ? Mauvais manip lors du copier/coller ou c'est plus grave ?

    EDIT : Je viens de me remarque qu'après ton inscruction ExecuteNonQuery, tu fais le Dispose avant le Close sur la connexion.

    Alors je n'ai jamais utilisé Sql Server CE mais de ce que j'en sais, c'est une DB embarquée de type fichier. Le problème ne serait-il pas là ? Il n'y aurait pas une sorte de commit à la fermeture de la connexion qui ne peut jamais se faire vu que tu disposes l'objet avant ??
    Kropernic

  7. #7
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par Kropernic Voir le message
    Qu'en est-il à propos de ce "$" qui vient parasiter le nom de la variable ? Mauvais manip lors du copier/coller ou c'est plus grave ?
    Le symbole dollars apres la declaration d'une variable indique que son type est String.
    Il en est de même pour le pourcentage (%) pour un type Integer....eet bien d'autres encore....


    Citation Envoyé par Kropernic Voir le message
    EDIT : Je viens de me remarque qu'après ton inscruction ExecuteNonQuery, tu fais le Dispose avant le Close sur la connexion.
    J'ai egalement remarqué cela .... a voir donc en inversant les instructions...

    @HackerCrawl : tu devraits placer ton code dans un bloc Try...Catch pour voir l'erreur .....

    @+

  8. #8
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Citation Envoyé par wallace1 Voir le message
    Le symbole dollars apres la declaration d'une variable indique que son type est String.
    Il en est de même pour le pourcentage (%) pour un type Integer....eet bien d'autres encore....
    Euh... Ok mais pourquoi ne pas simplement utiliser l'inférence de type ?
    Kropernic

  9. #9
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par Kropernic Voir le message
    Euh... Ok mais pourquoi ne pas simplement utiliser l'inférence de type ?
    Personnellement, lorsque je bouffe du code c'est une habitude ..... parfois je laisse le soin au compilateur de faire le job et d autres j'adjoint un typage.
    De plus l'inférence de type (pour qqun qui reprends le projet derriere toi) peut faire sourciller..... au survol bien sur....... je n'aime pas trop car ca peut laisser croire qu on a à faire a un type Object !
    .......brefff... on s écarte du sujet la ^_^ ......cela n'a aucune incidence dans sa portion de code

  10. #10
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Citation Envoyé par wallace1 Voir le message
    Personnellement, lorsque je bouffe du code c'est une habitude ..... parfois je laisse le soin au compilateur de faire le job et d autres j'adjoint un typage.
    De plus l'inférence de type (pour qqun qui reprends le projet derriere toi) peut faire sourciller..... au survol bien sur....... je n'aime pas trop car ca peut laisser croire qu on a à faire a un type Object !
    .......brefff... on s écarte du sujet la ^_^ ......cela n'a aucune incidence dans sa portion de code
    Effectivement, on s'écarte. Mais bon, vu qu'on n'a pas de feedback.

    Du coup, vu qu'il n'y avait pas de retour, j'ai creusé un peu le sujet et apparemment, quand on inclut la DB dans le projet, une copie est créée dans le répertoire bin/debug (ou release suivant le mode de compilation) et ce serait dans cette copie que les données sont insérées.

    Un peu plus de détails sur ce comportement ici.
    Kropernic

  11. #11
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Instruction insert sql
    Je pense que le ; à la fin de l'instruction est en trop

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Requete As String = "INSERT INTO t_energie_electricite (heures_pleines, heures_creuses, date_releve) VALUES ( 1111,1111, '');"

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je suis Désolé de ne pas avoir fait de retour,

    J'ai lu et tester vos solutions mais rien ne fonctionne, l'instruction SELECT fonctionne sans problème mais je ne peux toujours pas faire d'INSERT en utilisant une base "Portable"
    (Le TRY ... CATCH ne me donne aucun erreur)

    En revanche si j'utilise une base SQL Server installée en local la je n'ai aucun problème dans mon traitement de base.

    Le problème vient en effet de la copie de la base de données lors que je l'inclut dans le projet mais après je ne vois pas comment pallier ce problème.

  13. #13
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Va donc ce qu'il y a derrière le lien que j'ai posté. C'est expliqué...
    Kropernic

  14. #14
    Invité
    Invité(e)
    Par défaut
    Je vais y regarder mais il me semble que j'ai deja essayer quelque chose de similaire,

    Je reviendrai vers vous quand j'aurai testé

    Merci

Discussions similaires

  1. problème avec bulk insert sql server 2000
    Par siyassine dans le forum Administration
    Réponses: 1
    Dernier message: 25/08/2010, 08h31
  2. Réponses: 7
    Dernier message: 07/05/2009, 17h32
  3. Problème lors de l'Installation de Sql server 2005
    Par inno007 dans le forum Administration
    Réponses: 0
    Dernier message: 21/04/2009, 14h38
  4. Problème lors de l'installation de SQL SERVER 2008
    Par MedSabri dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 19/03/2008, 11h55
  5. Lenteur lors d'une insertion (sql server)
    Par shiners300 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 16/09/2005, 09h09

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