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

Accès aux données Discussion :

[VB 2005][SQL SERVER]Problème lors de l'insert


Sujet :

Accès aux données

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 32
    Points : 19
    Points
    19
    Par défaut [VB 2005][SQL SERVER]Problème lors de l'insert
    Bonjour,

    Je suis nouveau sur ce forum et en VB.NET.
    J'essaye bêtement de faire un insert into dans une table de ma bdd. J'ai récupéré un code sur le site de microsoft et m'en suis inspiré.

    Quand j'exécute, pas d'erreur. Mais une fois que j'arrête l'exécution du programme, il n'y a rien dans ma table.

    J'ai même rajouté après l'insert un select count(*) pour voir combien il y a d'enregistrements dans ma table. Cela s'incrémente jusqu'à ce que je stoppe le pgm.

    Merci d'avance pour votre aide

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
     
    Imports System.Data.SqlClient
    Public Class AccessData
        'Connexion à la base de données
        Private m_Connexion As SqlConnection
        'Commande à éxécuter sur la connexion m_Connexion
        Private m_Commande As SqlCommand
     
        ''' <summary>
        ''' Constructeur de la classe d'accès aux données
        ''' </summary>
        Sub New()
            'Utilisation de la chaine de connexion du fichier de configuration de l'application
            m_Connexion = New SqlConnection(My.Settings.dbImmoDataConnectionString)
            'Creation de la commande de type requete SQL dynamique
            m_Commande = m_Connexion.CreateCommand()
            m_Commande.CommandType = CommandType.Text
     
            'Variable utilisée pour réessayer la tentative de connexion
            Dim ResultatDuMessageBox As DialogResult = DialogResult.No
            Do
                Try
                    m_Connexion.Open()
                    MessageBox.Show(m_Connexion.State.ToString)
                Catch ex As Exception
                    My.Application.Log.WriteException(ex)
     
                    'Possibilité de réessayer
                    ResultatDuMessageBox = MessageBox.Show("Erreur de connexion à la base de données, voulez-vous réessayer ?", "Ma Cave A Vin", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                    If ResultatDuMessageBox <> DialogResult.Yes Then Throw New Exception("Utilisateur ne souhaite pas réessayer")
                End Try
            Loop Until (m_Connexion.State = ConnectionState.Open)
            'Jusqu'a ce que la connexion soit ouverte
            'Si l'utilisateur décide d'arreter une exception à été levée
        End Sub
     
        Public Sub Dispose()
            m_Commande.Dispose()
            m_Connexion.Close()
            m_Commande = Nothing
            m_Connexion = Nothing
        End Sub
     
    #Region "Gestion des Batiments"
        Public Function ajouterBatiment(ByVal clsBatiment As clsBatiments) As Boolean
            Dim sql As String
            clsBatiment.BatId = Guid.NewGuid.ToString
     
            sql = "insert into Batiments (BatId, BatAdresse, BatCP, BatVille, " _
                & "BatDescription, BatStatus, BatPrix) Values ("
            sql &= "'" & clsBatiment.BatId & "',"
            sql &= "'" & clsBatiment.BatAdresse & "',"
            sql &= "'" & clsBatiment.BatCP & "',"
            sql &= "'" & clsBatiment.BatVille & "',"
            sql &= "'" & clsBatiment.BatDescription & "',"
            sql &= clsBatiment.BatStatus & ","
            sql &= clsBatiment.BatPrix & ")"
     
            ajouterBatiment = ACTIONExecuterRequeteSansRetour(sql)
     
     
            m_Commande.CommandText = "select count(*) as c from Batiments"
     
            Dim ds As DataSet = New DataSet
            Dim da As SqlDataAdapter = New SqlDataAdapter(m_Commande)
            'Remplit le DataSet
            da.Fill(ds)
     
            'Renvoit la première ligne trouvé
            MessageBox.Show(ds.Tables(0).Rows(0)("c").ToString)
     
     
     
     
     
     
     
        End Function
    #End Region
     
        Private Function ACTIONExecuterRequeteSansRetour(ByVal chaineSql As String) As Boolean
            m_Commande.CommandText = chaineSql
            'Try
            m_Commande.ExecuteNonQuery()
     
            'Catch ex As Exception
            'ACTIONExecuterRequeteSansRetour = False
            'End Try
            'ACTIONExecuterRequeteSansRetour = True
        End Function
     
    End Class

  2. #2
    Membre éclairé
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Points : 777
    Points
    777
    Par défaut
    Je te conseille fortement d'utiliser les parameters pour tes requêtes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    sql = "INSERT INTO table (col1, col2) VALUES (@col1, @col2)";
     
    command.parameters.add("@col1", SqlDbType.NVarChar).value = "MaValeur";
    command.parameters.add("@col2", SqlDbType.NVarChar).value = "MaValeur2";
     
    command.executeNonQuery();
    Cela évite le SQLInjection + c'est beaucoup plus facile a débugger!

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 32
    Points : 19
    Points
    19
    Par défaut
    Je ne pense pas que ce soit un problème sql car quand je reprend la query et l'exécute dans l'explorateur de base de données, ça passe.

    J'ai aussi essayer de faire une erreur dans le nom d'un champ et là j'obtiens bien une erreur.

    HELP ....

  4. #4
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 32
    Points : 19
    Points
    19
    Par défaut
    Je n'y comprends rien. Quand je cherche sur google d'autres personnes ont eu ce problème mais personne ne donne la solution.

    Faut-il faire un genre de commit pour qu'il impute les données dans la base ? Y'a t-il à la création de la base de données qui dit que la base est transactionelle ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 68
    Points : 86
    Points
    86
    Par défaut
    Si il s'agit d'une base sur le poste de développement, j'ai remarqué qu'en mode debug, il fallait sélectionner l'option "Copier si plus récent" de la propriété "Copier dans le répertoire de sortie" de la base de donnée, pour que les données soient mises à jour.

Discussions similaires

  1. SQL SERVER: probléme lors de la connexion au serveur
    Par sorown dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 09/05/2014, 11h40
  2. [DTS sql server] Erreur lors de l'insertion de trop de ligne
    Par MoTUmBo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/07/2005, 22h44
  3. [SQL Server] problème de caractères spéciaux
    Par mbibim63 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 02/06/2005, 18h38
  4. [SQL Server]Problème avec l'authentification SQL SERVER
    Par tidou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/04/2005, 15h40
  5. Réponses: 4
    Dernier message: 10/06/2004, 18h05

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