Bonjour à tous,

J'utilise un datagridview ainsi que des procédures stockées pour mettre à jour ma base de données.
Mais lors de l'update, je me retrouve avec une violation d'accès concurrentiel.

Après recherches, j'ai trouvé que cela venait d'un problème de précisions entre les types c# et sql.

Après plusieurs essaies infructueux (type sql money avec type c# décimal, type sql money avec type c# double...), j'ai modifié mon champ de type money en décimal car j'ai trouvé qu'il fallait utiliser le même type en c# et sql, mais même problème, même en précisant dans ma procédure la précision...

Version simplifiée de mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
da.UpdateCommand = new SqlCommand("UPDATE t1 SET Prix=@Prix WHERE Prix=@Prix", connection);
da.UpdateCommand.Parameters.Add("@Prix", SqlDbType.Decimal);
da.UpdateCommand.Parameters["@Prix"].Precision = 18;
da.UpdateCommand.Parameters["@Prix"].Scale = 2;
da.UpdateCommand.Parameters["@Prix"].SourceColumn ="Prix";
 
...
 
da.Update(ds.Tables["t1"]);
Est-ce que quelqu'un à une solution ?
Merci de votre aide.

Je déleste car plus pertinent dans un forum c#