none
Que veut dire cette erreur sur ExecuteNonQuery RRS feed

  • Question

  • Bonjour

    voila l'erreur que j'ai lors d'un "insert" dans la base :

    Une exception de première chance de type 'System.Data.SqlServerCe.SqlCeException' s'est produite dans System.Data.SqlServerCe.dll

    System.Transactions Critical: 0 : <TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Critical"><TraceIdentifier>http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/Unhandled</TraceIdentifier><Description>Exception non gérée</Description><AppDomain>Films.vshost.exe</AppDomain><Exception><ExceptionType>System.Data.SqlServerCe.SqlCeException, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91</ExceptionType><Message>Échec de la conversion des données. [ OLE DB status value (if known) = 2 ]</Message><StackTrace>   à System.Data.SqlServerCe.SqlCeCommand.ProcessResults(Int32 hr)

       à System.Data.SqlServerCe.SqlCeCommand.ExecuteCommandText(IntPtr&amp;amp; pCursor, Boolean&amp;amp; isBaseTableCursor)

       à System.Data.SqlServerCe.SqlCeCommand.ExecuteCommand(CommandBehavior behavior, String method, ResultSetOptions options)

       à System.Data.SqlServerCe.SqlCeCommand.ExecuteNonQuery()

       à Films.Form2.Addbase(String qryv, String connString) dans C:\Documents and Settings\Admin.XPSP2-46E31CF49\Mes documents\Visual Studio 2008\Projects\Films\Form2.vb:ligne 90

       à Films.Form2.charg() dans C:\Documents and Settings\Admin.XPSP2-46E31CF49\Mes documents\Visual Studio 2008\Projects\Films\Form2.vb:ligne 78

       à Films.Form2.Form2_Load(Object sender, EventArgs e) dans C:\Documents and Settings\Admin.XPSP2-46E31CF49\Mes documents\Visual Studio 2008\Projects\Films\Form2.vb:ligne 45

       à System.EventHandler.Invoke(Object sender, EventArgs e)

       à System.Windows.Forms.Form.OnLoad(EventArgs e)

       à System.Windows.Forms.Form.OnCreateControl()

       à System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)

       à System.Windows.Forms.Control.CreateControl()

       à System.Windows.Forms.Control.WmShowWindow(Message&amp;amp; m)

       à System.Windows.Forms.Control.WndProc(Message&amp;amp; m)

       à System.Windows.Forms.ScrollableControl.WndProc(Message&amp;amp; m)

       à System.Windows.Forms.ContainerControl.WndProc(Message&amp;amp; m)

       à System.Windows.Forms.Form.WmShowWindow(Message&amp;amp; m)

       à System.Windows.Forms.Form.WndProc(Message&amp;amp; m)

       à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message&amp;amp; m)

       à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&amp;amp; m)

       à System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

       à System.Windows.Forms.SafeNativeMethods.ShowWindow(HandleRef hWnd, Int32 nCmdShow)

       à System.Windows.Forms.Control.SetVisibleCore(Boolean value)

       à System.Windows.Forms.Form.SetVisibleCore(Boolean value)

       à System.Windows.Forms.Control.set_Visible(Boolean value)

       à System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)

       à System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)

       à System.Windows.Forms.Application.Run(ApplicationContext context)

       à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()

       à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()

       à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)

       à Films.My.MyApplication.Main(String[] Args) dans 17d14f5c-a337-4978-8281-53493378c1071.vb:ligne 81

       à System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)

       à System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)

       à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()

       à System.Threading.ThreadHelper.ThreadStart_Context(Object state)

       à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

       à System.Threading.ThreadHelper.ThreadStart()</StackTrace><ExceptionString>Échec de la conversion des données. [ OLE DB status value (if known) = 2 ]</ExceptionString></Exception></TraceRecord>


    Alain D
    mardi 8 novembre 2011 12:34

Réponses

  • Bonjour,

     

    Le message d'erreur semble dire clairement qu'il s'agit d'un problème de conversion de données :

    "Échec de la conversion des données."

    Je vous conseille de récuperer la requête envoyée effectivement à la base grâce à vote debgueuer puis essayer de l'exécuter directement sur votre base

    jusqu'à qu'elle soit valide. Sinon au pire des cas vous pouvez nous fournir la déclaration SQL de votre table afin que l'on puisse vous aider.

    • Proposé comme réponse YosrJ mercredi 9 novembre 2011 12:11
    • Marqué comme réponse Ciprian Duduiala lundi 14 novembre 2011 08:26
    mardi 8 novembre 2011 13:01
    Auteur de réponse
  • Ici on *écrase* l'instruction d'insertion pour exécuter celle de comptage.

    Cela serait plutôt :

    ...
    cmd.Parameters.AddWithValue("@field2", "dessin")
    cmd.ExecuteNonQuery

    Et mettre le comptage dans une autre procédure ce qui permettra facilement de l'appeler pour vérifier et de ne plus l'appeler quand c'est ok.

    Du coup avec ce code c'est normal que cela ne fonctionne pas. Par contre je ne sais pas comment était le code précédent.

    Je suggère de tester qq avec qq chose le plus simple possible comme :

        Const ConnectionString As String = "Data Source=|DataDirectory|\Database1.sdf"
    
    
        Private Sub Compter()
            Const sql As String = "SELECT COUNT(*) FROM [Films vidéo]"
            Using conn As New SqlCeConnection(ConnectionString)
                Dim cmd As New SqlCeCommand(sql, conn)
                conn.Open()
                MsgBox(cmd.ExecuteScalar)
            End Using
        End Sub
    
        Private Sub Insérer()
            Const sql As String = "INSERT INTO [Films vidéo](Genre,Titre) VALUES (@Genre,@Titre)"
            Using conn As New SqlCeConnection(ConnectionString)
                Dim cmd As New SqlCeCommand(sql, conn)
                '        MsgBox(conn.DataSource)
                cmd.Parameters.Add("@Genre", SqlDbType.NVarChar)
                cmd.Parameters.Add("@Titre", SqlDbType.NVarChar)
                conn.Open()
                For i As Integer = 1 To 5
                    cmd.Parameters("@Genre").Value = "Genre " & i.ToString
                    cmd.Parameters("@Titre").Value = "Titre " & i.ToString
                    cmd.ExecuteNonQuery()
                Next
            End Using
        End Sub
    
    
        Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
            Compter()
            Insérer()
            Compter()
        End Sub
    

     

     

     


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    mercredi 9 novembre 2011 19:49
    Modérateur
  • Bonjour, Alain,

     

    Je vais clôturer ce thread, vu que vous avez repris la dernière question dans ce thread : http://social.msdn.microsoft.com/Forums/fr-FR/vbasicfr/thread/8e1bb821-a532-449e-9758-92dafdae1073 . Si vous décidez de mettre une nouvelle question, svp n’oubliez pas de clôturer le thread initial.

    Merci de votre compréhension et collaboration.

    Cordialement,

     

    Cipri


    Suivez MSDN sur Twitter   Suivez MSDN sur Facebook


    Ciprian DUDUIALA, MSFT  
    •Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

    • Marqué comme réponse papyx lundi 14 novembre 2011 09:40
    lundi 14 novembre 2011 08:25

Toutes les réponses

  • Bonjour

     

    Si  c'est possible postez vote code d'insert ça sera plus facile de vous aider

    Cordialement


    Best Regards...Please mark as answer if my post is helpful
    mardi 8 novembre 2011 12:40
  • Voila la procédure :

        Public Sub Addbase(ByVal qryv As String, ByVal connString As String)
            Using conn As New SqlCeConnection(connString)
                Dim cmd As New SqlCeCommand(qryv, conn)
                '          MsgBox(conn.DataSource, , Dir(conn.DataSource))
                conn.Open()
                cmd.ExecuteNonQuery()
            End Using
        End Sub

    et la valeur de "qryv" :

    "INSERT INTO [films vidéo] ([Titre], [Nb_Mo], [Genre], [Réalisateur], [HTTP], [Histoire], [Durée], [Année], [réf_acteurs]) VALUES ('Abyss Version Longue.avi','1337 Mo','Fantastique','James Cameron','#http://www.allocine.fr/film/fichefilm_gen_cfilm=4992.html#','Un commando de la Marine américaine débarque à bord de la station de forage sous-marine DeepCore, afin de porter secours à un so',165,0,0);"
    



    Alain D
    mardi 8 novembre 2011 12:48
  • Bonjour,

     

    Le message d'erreur semble dire clairement qu'il s'agit d'un problème de conversion de données :

    "Échec de la conversion des données."

    Je vous conseille de récuperer la requête envoyée effectivement à la base grâce à vote debgueuer puis essayer de l'exécuter directement sur votre base

    jusqu'à qu'elle soit valide. Sinon au pire des cas vous pouvez nous fournir la déclaration SQL de votre table afin que l'on puisse vous aider.

    • Proposé comme réponse YosrJ mercredi 9 novembre 2011 12:11
    • Marqué comme réponse Ciprian Duduiala lundi 14 novembre 2011 08:26
    mardi 8 novembre 2011 13:01
    Auteur de réponse
  • Dans quel endroit vous appelez cette procédure afin de déclencher l'insertion?

    l'appel du genre Addbase(qryv ,connString )

    et votre connstring qu'est ce quelle contient comme contenu?


    Best Regards...Please mark as answer if my post is helpful
    mardi 8 novembre 2011 13:02
  • J'appelle la procédure dans "Form2.vb"
     
      Const ConnectionString As String = "Data Source=|DataDirectory|\myDatabase#1.sdf"

    Alain D
    mardi 8 novembre 2011 13:05
  • Deja la chaine de connexion n'est pas correcte elle doit etre sous cette forme

    Data Source=|DataDirectory|\myDatabase1.sdf;Initial Catalog=base;Integrated Security=True
    

    et pour l'appel de la procédure je veux dire à quel niveau dans le code vous appelez la procédure?sous un bouton dans le load? fournissez plus de détails

     


    Best Regards...Please mark as answer if my post is helpful
    • Modifié YosrJ mardi 8 novembre 2011 13:13
    mardi 8 novembre 2011 13:12
  • a Ould

    voila l'erreur après éxécution du SQL :

    La syntaxe est correcte


    Alain D
    mardi 8 novembre 2011 13:13
  • a Yosrj

    c'est dans le load que j’exécute la procédure

    Ps. en adaptant votre modif, j'obtiens une erreur en amont, sur le "using"


    Alain D
    • Modifié papyx mardi 8 novembre 2011 13:29
    mardi 8 novembre 2011 13:18
  • Comme je vous ai dit votre chaine de connexion semble incorrecte

    Pour votre insertion donc je suppose que vous avez appelé votre procédure comme ceci

      Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
          
    Dim qryv as String="INSERT INTO [films vidéo] ([Titre], [Nb_Mo], [Genre], [Réalisateur], [HTTP], [Histoire], [Durée], [Année], [réf_acteurs]) VALUES ('Abyss Version Longue.avi','1337 Mo','Fantastique','James Cameron','#http://www.allocine.fr/film/fichefilm_gen_cfilm=4992.html#','Un commando de la Marine américaine débarque à bord de la station de forage sous-marine DeepCore, afin de porter secours à un so',165,0,0);"
    Dim connString as String="Data Source=PC;Initial Catalog=votrebase;Integrated Security=True"
    
    Addbase(qryv, connString)
    
        End Sub
    

    Sachant qu'une insertion dans le load n'est pas très intègre pour la base puisque l'insertion s'executera à chaque fois que la form s'ouvrira

    utilisez unclick  bouton par exemple ça sera mieux

     


    Best Regards...Please mark as answer if my post is helpful
    mardi 8 novembre 2011 13:31
  • Bien je mettre tous le code :

    Option Strict Off
    Imports vb = Microsoft.VisualBasic
    'Imports System.IO
    'Imports System.Runtime.CompilerServices
    'Imports Microsoft.Office.Interop
    'Imports System.Data.SqlClient
    Imports System.Data.SqlServerCe
    
    Public Class Form2
        Dim titre As String = ""
        Dim genre As String = ""
        Dim réalisateur As String = ""
        Dim http As String = ""
        Dim histoire As String = ""
        Dim nb_mo As String = ""
        Dim année As Short, durée As Short, taille As Short, refact As Short = 0
        Dim ix As Integer = 0
        Dim qq = Chr(34) '   double quote
        Dim q = Chr(39) '    quote
        Dim qvq = q & "," & q     '   ","
        Dim qry As String
        Dim qini As String
        Const ConnectionString As String = "Data Source=|DataDirectory|\myDatabase#1.sdf"
        '   ";Initial Catalog=base;Integrated Security=True"
        Const rep As String = _
        "C:\Documents and Settings\Admin.XPSP2-46E31CF49\Mes documents\Fichiers Excel\"
    
        '   Private Sub Films_vidéoBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Films_vidéoBindingNavigatorSaveItem.Click
        '      Me.Validate()
        '     Me.Films_vidéoBindingSource.EndEdit()
        '    Me.TableAdapterManager.UpdateAll(Me._MyDatabase_1DataSet1)
    
        'End Sub
    
        Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            qry = "INSERT INTO [films vidéo] ([Titre], [Nb_Mo], [Genre],"
            qry = qry & " [Réalisateur], [HTTP],"
            qry = qry & " [Histoire], [Durée], [Année], [réf_acteurs]) VALUES ("
            '@p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10)"
            qini = qry
            Call Module1.impotr(rep & "Films Olivier (base).xls")
            charg()
            Module1.fermeture()
        End Sub
    
        Sub charg()
            'récupération des valeurs de la plage B20:J46 doit être une valeur entière
            For cmptX As Int32 = 20 To 46    '   lignes
                For cmptY As Int32 = 2 To 10    '   colonnes
                    Select Case cmptY
                        Case 2 : titre = wshExcel.Cells(cmptX, cmptY).Value
                        Case 3 : genre = wshExcel.Cells(cmptX, cmptY).Value
                        Case 4 : nb_mo = wshExcel.Cells(cmptX, cmptY).Value
                        Case 5 : réalisateur = wshExcel.Cells(cmptX, cmptY).Value
                        Case 6 : http = wshExcel.Cells(cmptX, cmptY).Value
                        Case 7 : histoire = wshExcel.Cells(cmptX, cmptY).Value
                        Case 8 : année = Val(wshExcel.Cells(cmptX, cmptY).Value)
                        Case 9 : taille = Val(wshExcel.Cells(cmptX, cmptY).Value)
                        Case 10 : durée = Val(wshExcel.Cells(cmptX, cmptY).Value)
                    End Select
                Next
                If vb.InStr(titre, q) > 0 Then Replace(titre, q, "''")
                If InStr(histoire, q) > 0 Then Replace(histoire, q, "''")
                If Len(histoire) > 128 Then histoire = vb.Left(histoire, 128)
                qry = qini & q & titre & qvq & nb_mo & qvq & genre & qvq
                qry = qry & réalisateur & qvq & http & qvq & histoire & q
                qry = qry & "," & durée & "," & année & ",0);"
    
                Addbase(qry, ConnectionString)
    
            Next
    
        End Sub
    
    
        Public Sub Addbase(ByVal qryv As String, ByVal connString As String)
            Using conn As New SqlCeConnection(connString)
                Dim cmd As New SqlCeCommand(qryv, conn)
                '          MsgBox(conn.DataSource, , Dir(conn.DataSource))
                conn.Open()
                cmd.ExecuteNonQuery()
            End Using
        End Sub
    End Class
    



    Alain D
    mardi 8 novembre 2011 13:34
  • 1-votre insert est incorrecte (les @p1,@p2 sont ambigu)

     

    voici un exemple comment on execute un insert ,value1,value2 peuvent contenir ce que vous voulez(les cellules d'excel par exemple)

     

        sqlStatement = "INSERT INTO table(field1,field2) VALUES(@field1,@field2)"
    
                Dim cmd As New SqlCommand()
                cmd.Connection = con
                cmd.CommandType = CommandType.Text
                cmd.CommandText = sqlStatement
                cmd.Parameters.AddWithValue("@field1", value1)
                cmd.Parameters.AddWithValue("@field2", value2)
              
    
    2-votre manière de lire le fichier excel est incorrecte c'est pourquoi vous recevez une erreur oledb puisque c'est le provider pour la lecture des fichiers excel

     


    Best Regards...Please mark as answer if my post is helpful

    • Modifié YosrJ mardi 8 novembre 2011 14:00
    mardi 8 novembre 2011 13:54
  • Bonjour,

     

    Tu est sure que ta table s'appelles "films vidéo" ? car ça ne doit pas être permis comme nom de table.

    Sinon le mieux est que tu nous fournisses le type de chacune des colonne de ta table afin de pouvoir détecter là ou la conversion a échoué.

    mardi 8 novembre 2011 14:06
    Auteur de réponse
  • Pour le fichier Excel, je n'ai pas de problème; je lis bien les données et les récupère correctement.
    Alain D
    mardi 8 novembre 2011 14:16
  • Je crois savoir les raisons du problème; j'ai mal défini les types de donnée pour certains.

    Je croyais que "ntext" représentait une zone de texte.

    J'ai corrigé en mettant "ncar" (mais il fallait supprimer et recréer).

     


    Alain D
    mardi 8 novembre 2011 14:40
  • Donc tu confirmes que c'était bien un problème de conversion de données comme le semble indiquer le message d'erreur :

    "Échec de la conversion des données."

    C'est bien que votre problème soit résolu mais le plus importent à retenir ici est qu'il faut toujours lire attentivement les messages d'erreur car

    Souvent Le premier pas de la solution se trouve dans le message d'erreur !!!

     

    En tous cas pour moi, adopter une telle attitude m'aura été très bénéfique.


    mardi 8 novembre 2011 15:53
    Auteur de réponse
  • je vous remercie tous les 2 pour votre aide.

    J'ai encore eu quelques difficultés avec la syntaxe du query, mais le prog ne donne plus d'erreur à l'exécution; par contre les insertion dans la base ne se font pas ???

    J'arrive à insérer manuellement quand même.


    Alain D
    mardi 8 novembre 2011 17:00
  • Bonjour,

    Faire éventuelllement un SELECT COUNT(*) FROM [Films vidéo] (avec SqlCeCommand.ExecuteScalar) pour vérifier que l'insertion se fait bien.

    Comme je disais dans un message précédent l'erreur classique est :
    - soit de ne pas vérifier le bon fichier sdf
    - soit de ne pas avoir la bonne option sur le fichier sdf (par exemple le copier à chaque "build" et donc écraser à chaque lancement le "bon" fichier SDF)

    Vérifier avec le COUNT permet de confirmer que l'insertion a bien eu lieu (ou non).


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    mardi 8 novembre 2011 20:30
    Modérateur
  • Rebonjour

    Après comptage, je récupère 2 (cela correspond aux créations manuelles)

    Je ne sais pas comment vérifier l'option dont vous parlez.

    Est_ce ici qu'il faut agir?


    Alain D
    • Modifié papyx mercredi 9 novembre 2011 07:21
    mercredi 9 novembre 2011 07:16
  • pour l'insertion mettez des breapoints et faites un débogage avec f11(pas par pas) pour voir ou ça bloque

    ca m'a été toujours utile


    Best Regards...Please mark as answer if my post is helpful
    mercredi 9 novembre 2011 11:33
  • Bonjour je fais toujours cela quand je développe. En fait, je ne bloque nulle part. Ce sont les résultats qui ne sont pas au RDV.
    Alain D
    mercredi 9 novembre 2011 12:07
  • Je voulais dire par bloquage voir de plus près les valeurs insérées niveau requete lors du débogage
    Best Regards...Please mark as answer if my post is helpful
    mercredi 9 novembre 2011 12:10
  • J"ai essayé "manuellement" ma requête et cela fonctionne parfaitement.

     


    Alain D
    mercredi 9 novembre 2011 12:14
  • Où est placé ce comptage ? Ce comptage est-il fait dans "charg" après la boucle Next ? On devrait avoir 28 ? (les deux insérés manuellement dans le fichier de base si j'ai bien compris plus les 26 insérés depuis le fichier Excel).

     

     

     


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    mercredi 9 novembre 2011 12:43
    Modérateur
  • le comptage est mis dans une autre procédure que j'ai essayé venant de Yosrj (voir plus haut)

    J'essaie plusieurs solutions; voila la proc avec laquelle je veux faire une insertion :

       Sub test()
            Dim newProdID As Int32 = 0
            Dim sqlStatement = "INSERT INTO [films vidéo](Titre,Genre) VALUES(@field1,@field2)"
            Using conn As New SqlCeConnection(ConnectionString)
                Dim cmd As New SqlCeCommand  ' SqlCommand()
                cmd.Connection = conn
                conn.Open()
                cmd.CommandType = CommandType.Text
                cmd.CommandText = sqlStatement
                cmd.Parameters.AddWithValue("@field1", "titi l''oiseau")
                cmd.Parameters.AddWithValue("@field2", "dessin")
                cmd.CommandText = "select count(*) from [films vidéo]"
                MsgBox(Convert.ToInt32(cmd.ExecuteScalar()), , "Nbre d'articles dans la base " & Dir(conn.DataSource))
            End Using
        End Sub
    

    Le message m'affiche 2; donc rien de changé.

    Il est exact que devrait avoir 28 articles dans la base.

     


    Alain D
    mercredi 9 novembre 2011 19:09
  • Ici on *écrase* l'instruction d'insertion pour exécuter celle de comptage.

    Cela serait plutôt :

    ...
    cmd.Parameters.AddWithValue("@field2", "dessin")
    cmd.ExecuteNonQuery

    Et mettre le comptage dans une autre procédure ce qui permettra facilement de l'appeler pour vérifier et de ne plus l'appeler quand c'est ok.

    Du coup avec ce code c'est normal que cela ne fonctionne pas. Par contre je ne sais pas comment était le code précédent.

    Je suggère de tester qq avec qq chose le plus simple possible comme :

        Const ConnectionString As String = "Data Source=|DataDirectory|\Database1.sdf"
    
    
        Private Sub Compter()
            Const sql As String = "SELECT COUNT(*) FROM [Films vidéo]"
            Using conn As New SqlCeConnection(ConnectionString)
                Dim cmd As New SqlCeCommand(sql, conn)
                conn.Open()
                MsgBox(cmd.ExecuteScalar)
            End Using
        End Sub
    
        Private Sub Insérer()
            Const sql As String = "INSERT INTO [Films vidéo](Genre,Titre) VALUES (@Genre,@Titre)"
            Using conn As New SqlCeConnection(ConnectionString)
                Dim cmd As New SqlCeCommand(sql, conn)
                '        MsgBox(conn.DataSource)
                cmd.Parameters.Add("@Genre", SqlDbType.NVarChar)
                cmd.Parameters.Add("@Titre", SqlDbType.NVarChar)
                conn.Open()
                For i As Integer = 1 To 5
                    cmd.Parameters("@Genre").Value = "Genre " & i.ToString
                    cmd.Parameters("@Titre").Value = "Titre " & i.ToString
                    cmd.ExecuteNonQuery()
                Next
            End Using
        End Sub
    
    
        Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
            Compter()
            Insérer()
            Compter()
        End Sub
    

     

     

     


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    mercredi 9 novembre 2011 19:49
    Modérateur
  • Bonjour

    1)L'exécution me donne 2 avant insertion et 3 après; mais quand je vais dans base, il n'y-a que 2 articles  ???

    On dirait que la base revient à son état initiale ???

    2) je ne comprends pas pourquoi il y-a une boucle de 5?

    PS. est_ce normal de ne pas mettre "conn.close" ?


    Alain D


    • Modifié papyx jeudi 10 novembre 2011 12:28
    mercredi 9 novembre 2011 22:39
  • Bonjour, Alain,

     

    Je vais clôturer ce thread, vu que vous avez repris la dernière question dans ce thread : http://social.msdn.microsoft.com/Forums/fr-FR/vbasicfr/thread/8e1bb821-a532-449e-9758-92dafdae1073 . Si vous décidez de mettre une nouvelle question, svp n’oubliez pas de clôturer le thread initial.

    Merci de votre compréhension et collaboration.

    Cordialement,

     

    Cipri


    Suivez MSDN sur Twitter   Suivez MSDN sur Facebook


    Ciprian DUDUIALA, MSFT  
    •Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

    • Marqué comme réponse papyx lundi 14 novembre 2011 09:40
    lundi 14 novembre 2011 08:25