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

Windows Forms Discussion :

InsertCommand avec DataAdapter.update


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Par défaut InsertCommand avec DataAdapter.update
    Hello!

    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
            Try
                BDDDataSet = New DataSet()
                BDDConnection = New OleDbConnection()
                BDDConnection.ConnectionString = ParametreConnection
                Try
                    BDDConnection.Open()
                Catch
                    MsgBox("Vous devez ouvrir une Base de donnée Access avant toute opération.")
                End Try
                BDDCommand = New OleDbCommand("SELECT USER, MDP FROM Users")
                BDDDataAdapter = New OleDbDataAdapter(BDDCommand)
                BDDCommand.Connection() = BDDConnection
                BDDDataAdapter.Fill(BDDDataSet, "Users")
                BDDConnection.Close()
     
            Catch ex As Exception
                MsgBox("Erreur connection BDD: " & ex.Message)
            End Try
     
            BDDDataRow = BDDDataSet.Tables("Users").NewRow()
            BDDDataRow("USER") = System.Environment.UserName
            BDDDataRow("MDP") = TextBox1.Text
            BDDDataSet.Tables("Users").Rows.Add(BDDDataRow)
     
            BDDDataAdapter.Update(BDDDataSet, "Users")
            BDDConnection.Close()
    Lorsque je rempli la textbox et que j'appuie qur le bouton qui declenche cette fonction, VS 2008 me retourne l'erreur suivante:


    L'exception System.InvalidOperationException n'a pas été gérée
    Message="Update requiert un InsertCommand valide lors du passage de la collection DataRow avec de nouvelles lignes."
    Source="System.Data"
    StackTrace:
    à System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount) à System.Data.Common.DbDataAdapter.UpdatedRowStatus(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount) à System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping) à System.Data.Common.DbDataAdapter.UpdateFromDataTable(DataTable dataTable, DataTableMapping tableMapping) à System.Data.Common.DbDataAdapter.Update(DataSet dataSet, String srcTable) à Apli_Vigneron.Form2.Button1_Click(Object sender, EventArgs e) dans C:\Users\Adrien\Documents\Visual Studio 2008\Projects\Apli_Vigneron\My Project\Form2.vb:ligne 36 à System.Windows.Forms.Control.OnClick(EventArgs e) à System.Windows.Forms.Button.OnClick(EventArgs e) à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) à System.Windows.Forms.Control.WndProc(Message& m) à System.Windows.Forms.ButtonBase.WndProc(Message& m) à System.Windows.Forms.Button.WndProc(Message& m) à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) à System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) à System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) à System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData) à 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) à Apli_Vigneron.My.MyApplication.Main(String[] Args) dans 17d14f5c-a337-4978-8281-53493378c1071.vb:ligne 81 à System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) à System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args) à System.Runtime.Hosting.ManifestRunner.Run(Boolean checkAptModel) à System.Runtime.Hosting.ManifestRunner.ExecuteAsAssembly() à System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData) à System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext) à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone() à System.Threading.ThreadHelper.ThreadStart_Context(Object state) à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) à System.Threading.ThreadHelper.ThreadStart()
    InnerException:

    C'est la première fois que je vois ce type d'erreur et j'ai demandé à plusieurs amis programmeurs, ils ne connaissent pas non plus.

    Merki!

  2. #2
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 183
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 183
    Par défaut
    Bonjour.

    Apparemment, tu n'as pas mis de OleDbCommandBuilder sur ton OleDbDataAdapter.

    Ca doit expliquer l'erreur.

    Cdt.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Par défaut
    ah oui merci ^^

    Mais maintenant il me dit qu'il y'a une erreur sur la commande insert into.


    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
    Dim mdp1 As String
            Dim mdp2 As String
     
            InputBox("Veuillez confirmer que votre login Windows est " & System.Environment.UserName, "Login", System.Environment.UserName)
     
            ConnecDB("SELECT count(*) from users where user like'" & System.Environment.UserName & "'", "table")
     
            If BDDDataSet.Tables("table").Rows(0).Item(0).ToString() = 0 Then
     
                ConnecDB("SELECT USER, MDP FROM USERS", "Users")
     
                mdp1 = InputBox("Veuillez entrer un mot de passe.", "Mot de passe")
                mdp2 = InputBox("Veuillez confirmer votre mot de passe.", "Mot de passe")
                If mdp1 = mdp2 Then
                    BDDDataRow = BDDDataSet.Tables("Users").NewRow()
                    BDDDataRow("USER") = System.Environment.UserName
                    BDDDataRow("MDP") = mdp1
                    BDDDataSet.Tables("Users").Rows.Add(BDDDataRow)
                Else : MsgBox("Les 2 mots de passe entrés ne correspondent pas, veuillez recommencer.", MsgBoxStyle.OkOnly, "Erreur")
                End If
                Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder(BDDDataAdapter)
                builder.GetUpdateCommand()
                BDDDataAdapter.Update(BDDDataSet, "Users")
                BDDConnection.Close()
            End If
    L'exception System.Data.OleDb.OleDbException n'a pas été gérée
    ErrorCode=-2147217900
    Message="Erreur de syntaxe dans l'instruction INSERT INTO."
    Source="Microsoft JET Database Engine"
    StackTrace:
    à System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount) à System.Data.Common.DbDataAdapter.UpdatedRowStatus(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount) à System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping) à System.Data.Common.DbDataAdapter.UpdateFromDataTable(DataTable dataTable, DataTableMapping tableMapping) à System.Data.Common.DbDataAdapter.Update(DataSet dataSet, String srcTable) à Apli_Vigneron.User.Button1_Click(Object sender, EventArgs e) dans C:\Users\Adrien\Documents\Visual Studio 2008\Projects\Apli_Vigneron\User.vb:ligne 43 à System.Windows.Forms.Control.OnClick(EventArgs e) à System.Windows.Forms.Button.OnClick(EventArgs e) à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) à System.Windows.Forms.Control.WndProc(Message& m) à System.Windows.Forms.ButtonBase.WndProc(Message& m) à System.Windows.Forms.Button.WndProc(Message& m) à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) à System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) à System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) à System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData) à 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) à Apli_Vigneron.My.MyApplication.Main(String[] Args) dans 17d14f5c-a337-4978-8281-53493378c1071.vb:ligne 81 à System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) à System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args) à System.Runtime.Hosting.ManifestRunner.Run(Boolean checkAptModel) à System.Runtime.Hosting.ManifestRunner.ExecuteAsAssembly() à System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData) à System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext) à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone() à System.Threading.ThreadHelper.ThreadStart_Context(Object state) à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) à System.Threading.ThreadHelper.ThreadStart()
    InnerException:

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 35
    Par défaut
    si tu donne pas ta requête , ca va etre dur de te dépanner !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Par défaut
    bah la requête c'est pas moi qui la fait c'est BDDDataAdaptater.update qui s'en occupe...

    sinon j'aurai changer la requête

  6. #6
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    ca me surprendrait que le commandbuilder sache générer des requête action en partant d'un aggrégat

Discussions similaires

  1. [Débutant] Erreur dataadapter update dataset problem avec access 2007
    Par mafiases dans le forum VB.NET
    Réponses: 5
    Dernier message: 18/07/2015, 15h42
  2. Réponses: 3
    Dernier message: 22/12/2005, 17h47
  3. astuce avec fonction update
    Par cubepiege dans le forum Langage SQL
    Réponses: 2
    Dernier message: 08/11/2005, 10h54
  4. requete avec un update
    Par letudiant1 dans le forum ASP
    Réponses: 4
    Dernier message: 06/10/2005, 16h33
  5. Probleme avec l'update
    Par belabyad dans le forum ASP
    Réponses: 8
    Dernier message: 02/05/2005, 10h18

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