Bug du .NET ? DBConcurrencyException lors de l'appel de la méthode DbDataAdpter.Update()
3 réponses
Gilles TOURREAU
Je suis sous SQL 2005.
J'ai un DataTable que je rempli à l'aide d'un DataAdapter et d'un
CommandBuilder.
Une fois rempli, je supprime une ligne d'une table à l'aide la méthode
.Delete() cela permet de répercuter les modification au prochain appel de
Adapter.Update();
Lorsque j'appel cette méthode, j'ai une exception qui se déclenche
"DBConncurrencyException : Concurrency violation: the DeleteCommand affected
0 of the expected 1 records."
Cette exception est déclenché car la commande Delete généré par
CommandBuilder à effacé aucune ligne.
J'ai donc regardé avec le Profiler de SQL 2005 la commande qui était
executée :
exec sp_executesql N'DELETE FROM ......................
J'ai fais un copier/coller de cette commande vers SQL Server Management
Studio, je l'execute, et là, SQL 2005 me dit qu'une ligne vient d'être
effacé (1 row affected(s)) !!!
D'où vient cette erreur ? Serait-ce un bug au niveau de .NET ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Med Bouchenafa
C'est un peu violent pour etre un bug... Une idee serait de faire un catch de cette exception et de regader plus en details les elements de cette instance L'objet DBConcurrencyException est tres riche en proprietes et membres
J'ai un DataTable que je rempli à l'aide d'un DataAdapter et d'un CommandBuilder. Une fois rempli, je supprime une ligne d'une table à l'aide la méthode .Delete() cela permet de répercuter les modification au prochain appel de Adapter.Update();
Lorsque j'appel cette méthode, j'ai une exception qui se déclenche "DBConncurrencyException : Concurrency violation: the DeleteCommand affected 0 of the expected 1 records."
Cette exception est déclenché car la commande Delete généré par CommandBuilder à effacé aucune ligne. J'ai donc regardé avec le Profiler de SQL 2005 la commande qui était executée :
exec sp_executesql N'DELETE FROM ......................
J'ai fais un copier/coller de cette commande vers SQL Server Management Studio, je l'execute, et là, SQL 2005 me dit qu'une ligne vient d'être effacé (1 row affected(s)) !!! D'où vient cette erreur ? Serait-ce un bug au niveau de .NET ?
En vous remerciant par avances de vos lumières...
-- Gilles TOURREAU Responsable Informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
C'est un peu violent pour etre un bug...
Une idee serait de faire un catch de cette exception et de regader plus en
details les elements de cette instance
L'objet DBConcurrencyException est tres riche en proprietes et membres
"Gilles TOURREAU" <gilles.tourreau@pos.fr> wrote in message
news:%23I9GoeH8FHA.3752@tk2msftngp13.phx.gbl...
Je suis sous SQL 2005.
J'ai un DataTable que je rempli à l'aide d'un DataAdapter et d'un
CommandBuilder.
Une fois rempli, je supprime une ligne d'une table à l'aide la méthode
.Delete() cela permet de répercuter les modification au prochain appel de
Adapter.Update();
Lorsque j'appel cette méthode, j'ai une exception qui se déclenche
"DBConncurrencyException : Concurrency violation: the DeleteCommand
affected 0 of the expected 1 records."
Cette exception est déclenché car la commande Delete généré par
CommandBuilder à effacé aucune ligne.
J'ai donc regardé avec le Profiler de SQL 2005 la commande qui était
executée :
exec sp_executesql N'DELETE FROM ......................
J'ai fais un copier/coller de cette commande vers SQL Server Management
Studio, je l'execute, et là, SQL 2005 me dit qu'une ligne vient d'être
effacé (1 row affected(s)) !!!
D'où vient cette erreur ? Serait-ce un bug au niveau de .NET ?
C'est un peu violent pour etre un bug... Une idee serait de faire un catch de cette exception et de regader plus en details les elements de cette instance L'objet DBConcurrencyException est tres riche en proprietes et membres
J'ai un DataTable que je rempli à l'aide d'un DataAdapter et d'un CommandBuilder. Une fois rempli, je supprime une ligne d'une table à l'aide la méthode .Delete() cela permet de répercuter les modification au prochain appel de Adapter.Update();
Lorsque j'appel cette méthode, j'ai une exception qui se déclenche "DBConncurrencyException : Concurrency violation: the DeleteCommand affected 0 of the expected 1 records."
Cette exception est déclenché car la commande Delete généré par CommandBuilder à effacé aucune ligne. J'ai donc regardé avec le Profiler de SQL 2005 la commande qui était executée :
exec sp_executesql N'DELETE FROM ......................
J'ai fais un copier/coller de cette commande vers SQL Server Management Studio, je l'execute, et là, SQL 2005 me dit qu'une ligne vient d'être effacé (1 row affected(s)) !!! D'où vient cette erreur ? Serait-ce un bug au niveau de .NET ?
En vous remerciant par avances de vos lumières...
-- Gilles TOURREAU Responsable Informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
SM
Avant d'appeler la methode Delete() est ce que vous avez verifié que le record existe bien dans le BD ? pour les records insérés mais non encore commités il faut appeler plutot la methode Remove().
"Gilles TOURREAU" wrote in message news:%
Je suis sous SQL 2005.
J'ai un DataTable que je rempli à l'aide d'un DataAdapter et d'un CommandBuilder. Une fois rempli, je supprime une ligne d'une table à l'aide la méthode .Delete() cela permet de répercuter les modification au prochain appel de Adapter.Update();
Lorsque j'appel cette méthode, j'ai une exception qui se déclenche "DBConncurrencyException : Concurrency violation: the DeleteCommand
affected
0 of the expected 1 records."
Cette exception est déclenché car la commande Delete généré par CommandBuilder à effacé aucune ligne. J'ai donc regardé avec le Profiler de SQL 2005 la commande qui était executée :
exec sp_executesql N'DELETE FROM ......................
J'ai fais un copier/coller de cette commande vers SQL Server Management Studio, je l'execute, et là, SQL 2005 me dit qu'une ligne vient d'être effacé (1 row affected(s)) !!! D'où vient cette erreur ? Serait-ce un bug au niveau de .NET ?
En vous remerciant par avances de vos lumières...
-- Gilles TOURREAU Responsable Informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Avant d'appeler la methode Delete() est ce que vous avez verifié que le
record existe bien dans le BD ? pour les records insérés mais non encore
commités il faut appeler plutot la methode Remove().
"Gilles TOURREAU" <gilles.tourreau@pos.fr> wrote in message
news:%23I9GoeH8FHA.3752@tk2msftngp13.phx.gbl...
Je suis sous SQL 2005.
J'ai un DataTable que je rempli à l'aide d'un DataAdapter et d'un
CommandBuilder.
Une fois rempli, je supprime une ligne d'une table à l'aide la méthode
.Delete() cela permet de répercuter les modification au prochain appel de
Adapter.Update();
Lorsque j'appel cette méthode, j'ai une exception qui se déclenche
"DBConncurrencyException : Concurrency violation: the DeleteCommand
affected
0 of the expected 1 records."
Cette exception est déclenché car la commande Delete généré par
CommandBuilder à effacé aucune ligne.
J'ai donc regardé avec le Profiler de SQL 2005 la commande qui était
executée :
exec sp_executesql N'DELETE FROM ......................
J'ai fais un copier/coller de cette commande vers SQL Server Management
Studio, je l'execute, et là, SQL 2005 me dit qu'une ligne vient d'être
effacé (1 row affected(s)) !!!
D'où vient cette erreur ? Serait-ce un bug au niveau de .NET ?
Avant d'appeler la methode Delete() est ce que vous avez verifié que le record existe bien dans le BD ? pour les records insérés mais non encore commités il faut appeler plutot la methode Remove().
"Gilles TOURREAU" wrote in message news:%
Je suis sous SQL 2005.
J'ai un DataTable que je rempli à l'aide d'un DataAdapter et d'un CommandBuilder. Une fois rempli, je supprime une ligne d'une table à l'aide la méthode .Delete() cela permet de répercuter les modification au prochain appel de Adapter.Update();
Lorsque j'appel cette méthode, j'ai une exception qui se déclenche "DBConncurrencyException : Concurrency violation: the DeleteCommand
affected
0 of the expected 1 records."
Cette exception est déclenché car la commande Delete généré par CommandBuilder à effacé aucune ligne. J'ai donc regardé avec le Profiler de SQL 2005 la commande qui était executée :
exec sp_executesql N'DELETE FROM ......................
J'ai fais un copier/coller de cette commande vers SQL Server Management Studio, je l'execute, et là, SQL 2005 me dit qu'une ligne vient d'être effacé (1 row affected(s)) !!! D'où vient cette erreur ? Serait-ce un bug au niveau de .NET ?
En vous remerciant par avances de vos lumières...
-- Gilles TOURREAU Responsable Informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Gilles TOURREAU
Oui, l'enregistrement existe bien avant et après mon Delete() dans ma base de données SQL Server.
Cordialement
-- Gilles TOURREAU Responsable Informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr "SM" a écrit dans le message de news:
Avant d'appeler la methode Delete() est ce que vous avez verifié que le record existe bien dans le BD ? pour les records insérés mais non encore commités il faut appeler plutot la methode Remove().
"Gilles TOURREAU" wrote in message news:%
Je suis sous SQL 2005.
J'ai un DataTable que je rempli à l'aide d'un DataAdapter et d'un CommandBuilder. Une fois rempli, je supprime une ligne d'une table à l'aide la méthode .Delete() cela permet de répercuter les modification au prochain appel de Adapter.Update();
Lorsque j'appel cette méthode, j'ai une exception qui se déclenche "DBConncurrencyException : Concurrency violation: the DeleteCommand
affected
0 of the expected 1 records."
Cette exception est déclenché car la commande Delete généré par CommandBuilder à effacé aucune ligne. J'ai donc regardé avec le Profiler de SQL 2005 la commande qui était executée :
exec sp_executesql N'DELETE FROM ......................
J'ai fais un copier/coller de cette commande vers SQL Server Management Studio, je l'execute, et là, SQL 2005 me dit qu'une ligne vient d'être effacé (1 row affected(s)) !!! D'où vient cette erreur ? Serait-ce un bug au niveau de .NET ?
En vous remerciant par avances de vos lumières...
-- Gilles TOURREAU Responsable Informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Oui, l'enregistrement existe bien avant et après mon Delete() dans ma base
de données SQL Server.
Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
"SM" <sauvemark@yahoo.com> a écrit dans le message de news:
uW0dcPQ8FHA.3876@TK2MSFTNGP09.phx.gbl...
Avant d'appeler la methode Delete() est ce que vous avez verifié que le
record existe bien dans le BD ? pour les records insérés mais non encore
commités il faut appeler plutot la methode Remove().
"Gilles TOURREAU" <gilles.tourreau@pos.fr> wrote in message
news:%23I9GoeH8FHA.3752@tk2msftngp13.phx.gbl...
Je suis sous SQL 2005.
J'ai un DataTable que je rempli à l'aide d'un DataAdapter et d'un
CommandBuilder.
Une fois rempli, je supprime une ligne d'une table à l'aide la méthode
.Delete() cela permet de répercuter les modification au prochain appel de
Adapter.Update();
Lorsque j'appel cette méthode, j'ai une exception qui se déclenche
"DBConncurrencyException : Concurrency violation: the DeleteCommand
affected
0 of the expected 1 records."
Cette exception est déclenché car la commande Delete généré par
CommandBuilder à effacé aucune ligne.
J'ai donc regardé avec le Profiler de SQL 2005 la commande qui était
executée :
exec sp_executesql N'DELETE FROM ......................
J'ai fais un copier/coller de cette commande vers SQL Server Management
Studio, je l'execute, et là, SQL 2005 me dit qu'une ligne vient d'être
effacé (1 row affected(s)) !!!
D'où vient cette erreur ? Serait-ce un bug au niveau de .NET ?
Oui, l'enregistrement existe bien avant et après mon Delete() dans ma base de données SQL Server.
Cordialement
-- Gilles TOURREAU Responsable Informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr "SM" a écrit dans le message de news:
Avant d'appeler la methode Delete() est ce que vous avez verifié que le record existe bien dans le BD ? pour les records insérés mais non encore commités il faut appeler plutot la methode Remove().
"Gilles TOURREAU" wrote in message news:%
Je suis sous SQL 2005.
J'ai un DataTable que je rempli à l'aide d'un DataAdapter et d'un CommandBuilder. Une fois rempli, je supprime une ligne d'une table à l'aide la méthode .Delete() cela permet de répercuter les modification au prochain appel de Adapter.Update();
Lorsque j'appel cette méthode, j'ai une exception qui se déclenche "DBConncurrencyException : Concurrency violation: the DeleteCommand
affected
0 of the expected 1 records."
Cette exception est déclenché car la commande Delete généré par CommandBuilder à effacé aucune ligne. J'ai donc regardé avec le Profiler de SQL 2005 la commande qui était executée :
exec sp_executesql N'DELETE FROM ......................
J'ai fais un copier/coller de cette commande vers SQL Server Management Studio, je l'execute, et là, SQL 2005 me dit qu'une ligne vient d'être effacé (1 row affected(s)) !!! D'où vient cette erreur ? Serait-ce un bug au niveau de .NET ?
En vous remerciant par avances de vos lumières...
-- Gilles TOURREAU Responsable Informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr