Bonjour,

Après plusieurs essai, je n'arrive toujours pas a comprendre d'ou provient mon erreur et n'arrive pas a la résoudre.

J'ai une petite application très légère et j'essaye de faire un update de mes données.

Pour cela je crée un objet command dans lequel j'écris ma requète sql et ensuite je défini mes paramètres.

J'effectue ensuite mon update. Et c'est la que le problème devient bizarre.

Si j'ajoute dans mes champs visé par mon update tout mes champs, l'exécution de mon programme me renvoit un problème d'accès concurrent (db ouvert une seul fois par le logiciel et personne d'autre vu qu'elle est en réalisation).
Si par contre je ne mets pas tout les champs de ma table, l'update fonctionne très bien.
J'ai donc essayé d'isoler le problème de mon dernier champs dont il ne veut pas, et en changeant son type, il ne fonctionne toujours pas, si par contre j'effectue un update visé rien que sur ce champs la, cela fonctionne.

Est-ce un bug de microsoft access 2007 (ou j'enregistre en 2003)? j'ai beau chercher une logique, je n'en vois pas.
Ah oui particularité aussi, je ne mets pas a jour donc mes champs cloture et detailcloture, je peux indiquer le nombre de paramètre que j'ai envie, mais si je les ajoute et que je ne mets pas tout les autres champs en paramètre, il me dit que toutes les valeurs n'ont pas été complètée

Voici mon code :

public void UpdateJob(DataRow drJob)
{
OleDbCommand updateCommand = new OleDbCommand("Update Job SET m_fonction = @m_fonction, m_detailcloture = @m_detailcloture, m_annonce = @m_annonce, m_contact = @m_contact, m_site = @m_site where m_numero = @m_numero", m_dbConnection);

updateCommand.Parameters.Add("@m_fonction", OleDbType.VarChar, 50, "m_fonction");
updateCommand.Parameters.Add("@m_date", OleDbType.DBDate, 15, "m_date");
updateCommand.Parameters.Add("@m_annonce", OleDbType.VarChar, 255, "m_annonce");
updateCommand.Parameters.Add("@m_contact", OleDbType.VarChar, 50, "m_contact");
updateCommand.Parameters.Add("@m_site", OleDbType.Integer, 10, "m_site");
updateCommand.Parameters.Add("@m_detailcloture", OleDbType.VarChar, 50, "m_detailcloture");
updateCommand.Parameters.Add("@m_cloture", OleDbType.Integer, 5, "m_cloture");
OleDbParameter param = new OleDbParameter("@m_numero", OleDbType.Integer, 10, "m_numero");
param.SourceVersion = DataRowVersion.Current;

m_dbAdapter.UpdateCommand = updateCommand;
DataRow rowresult = (m_dbDataSet.Tables["Job"].Select("m_numero = " + drJob["m_numero"].ToString()))[0];
rowresult["m_fonction"] = drJob["m_fonction"];
rowresult["m_date"] = drJob["m_date"];
rowresult["m_annonce"] = drJob["m_annonce"];
rowresult["m_contact"] = drJob["m_contact"];
rowresult["m_site"] = drJob["m_site"];
rowresult["m_detailcloture"] = "test"; //drJob["m_cloturee"];
m_dbAdapter.Update(m_dbDataSet.Tables["Job"]);
}