Mettre à jour des champs d'une table Access [Résolu]

Blacknight91titi 1754 Messages postés jeudi 17 juin 2004Date d'inscription 9 mars 2015 Dernière intervention - 15 sept. 2004 à 15:24 - Dernière réponse : Arthenius 1183 Messages postés mercredi 21 janvier 2004Date d'inscription 6 septembre 2011 Dernière intervention
- 17 sept. 2004 à 14:23
8-) Bl@cknight91Titi :-p

Bonjour,

J'aimerais savoir comment mettre à jour les champs d'une table d'une dataset. J'utilise une connexion ODBC, et une base Access.

Je sais qu'il faut créé un objet odbcCommand mais quelles sont les paramètres à passés ?
odbcUpdate.CommandText = ???

j'ai un objet odbcAdapter qui me permet de remplir une dataset, et j'arrive bien à lire.
si je veux faire un UPDATE, il faut que je fasse:

odbcDataAdapter1.UpdateCommand = odbcUpdate;

puis:
//dataset étant rempli, et table indiquant la table à modifier
odbcDataAdapter1.Update(dataset,table);

J'ai essayé avec une requête SQL, mais cela n'est pas optimisé et me cause des erreurs lorsque des champs de ma table contiennent des caractères spéciaux ( ', =, <, > ...)
OdbcCommand odbcSelectFiche = new System.Data.Odbc.OdbcCommand(query,odbcConnection1);
int nbr = odbcSelectFiche.ExecuteNonQuery();

Merci de vos lumières :)
Afficher la suite 

Votre réponse

13 réponses

Meilleure réponse
Arthenius 1183 Messages postés mercredi 21 janvier 2004Date d'inscription 6 septembre 2011 Dernière intervention - 17 sept. 2004 à 11:58
3
Merci
pour les champs originaux...

dans un dataset tu a 2 version de données...
la version original :
qui correspond a la version des données telle qu'elles etaient au moment du chargement...
la vcersion current (celle par défaut) : c'est les données que tu va modifier dans ton datagrid....

exemple si tu supprime une ligne en current la ligne n'existera plus...le ds saura qu'il y a une ligne a supprimer...pour connaitre la cle de cette ligne il ira voir dans l'original...
idem pour comparer les nouvelle ligne ou ligne modifie...
y compare le current a l'original et ca defini le statut de chaque ligne....

en fait qd il genere c original, c'est pour eviter qu'il y est remplacement de données qd plusieurs user modifie la base en meme temps...

imaginon A et B consulte la meme fiche...
les ds se remplisse avec les memes donnees...a modifie et enregistre....
ca passe...
B lui a les donnéees avant modif de A, du coup puisque les champs original sont dans la clause where de l'update B au moment de la mise a jour ne retrouve plus la ligne ...et du coup l'update n'aboutit pas pour B car A a modifier la fiche avant...

ca evite que B ecrase A....

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."

Merci Arthenius 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

Commenter la réponse de Arthenius
Arthenius 1183 Messages postés mercredi 21 janvier 2004Date d'inscription 6 septembre 2011 Dernière intervention - 16 sept. 2004 à 09:38
0
Merci
Salut,

premiere chose pourquoi utiliser ODBC pour accéder à access alors que les oledb fonctionne bien...
il te suffit de créer un objet oledbconnection avec la connectionString qui va bien...regarde un de mes sources qui parle de connectionstring pour t'aider a générer la connectionstring...

ensuite tu a plusieurs possibilites pour mettre a jour un champ...

soit tu créer un objet oledbCommand dans le quel tu fais

oledbcommand.commandtext ="INSERT INTO TOTO VALUES ('1', '2', '3') ";
oledbcommand.executenonquery();

mais c pas genial...ca t'oblige a changer ton commandtext pour chaque valeur nouvel a inserer...

le mieux c'est d'utiliser les parametres...
ton code devient :

OleDbConnection ma_connect = new OleDbConnection(@"provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test.mdb;");
OleDbCommand ma_command = new OleDbCommand("INSERT INTO TOTO VALUES (@param1, @param2, @param2)",ma_connect);
OleDbParameter param1 = new OleDbParameter("@param1", System.Data.OleDb.OleDbType.VarChar);
OleDbParameter param2 = new OleDbParameter("@param2", System.Data.OleDb.OleDbType.VarChar);
OleDbParameter param2 = new OleDbParameter("@param3", System.Data.OleDb.OleDbType.VarChar);
ma_command.Parameters.Add(param1);
ma_command.Parameters.Add(param2);
ma_command.Parameters.Add(param3);

ma_command.Parameters["@param1"].Value = "TOTO";
ma_command.Parameters["@param2"].Value = "TITI";
ma_command.Parameters["@param3"].Value = "TUTU";
try
{
ma_connect.Open();
ma_command.ExecuteNonQuery();
ma_connect.Close();
}
catch(Exception xcp)
{
MessageBox.Show(xcp.Message);

}


la il suffit de changer le .value de tes 3 parametres et relancer l'executenonquery()...
c plus propre...
de plus l'interet des parametre est de gerer (en theorie) les caracteres bizarre....

l'autre solution est d'utiliser le oledbdataadapter pour cela tu genere 4 oledbcommand, 1 select (avec parametre si il faut), 1 update (avec parametre si il faut) 1 insert (avec parametre si il faut), 1 delete (avec parametre si il faut)
tu met le tout dans oledbdataadapter.selectcommand=mon_select_command_avec_mes parametre
...
dataadapter.insertcommand = ....

etc....

tu fais ton fill(ds, "matable");
tu rempli un datagrid avec ton dataset (ds)

tu fais des modif dans le datagrid...(ie ds)

et pour la mise à jour tu fais un dataadapter.update(ds, "matable");

et le prog va metrte a jour les lignes ajoutes modifies et supprime...

detail si tu veux absolument passer par des objets odbc, remplace dans tout les codes du dessus oledb par odbc...

voila bon courage....
:big)

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
Commenter la réponse de Arthenius
Blacknight91titi 1754 Messages postés jeudi 17 juin 2004Date d'inscription 9 mars 2015 Dernière intervention - 16 sept. 2004 à 15:03
0
Merci
8-) Bl@cknight91Titi :-p

Merci,

J'ai testé ta 2ème solution en passant par 4 odbcCommand (select, insert, update, delete).

l'insert, select et delete fonctionne bien.
Par contre je n'arrive toujours pas à mettre à jour ma bdd. La dataset à pourtant bien ses valeurs de champs modifiés.

j'ai pourtant bien appliqué à l' odbcAdapter ses propriétés:

odbcDataAdapter1.UpdateCommand = odbcUpdate;

//dataset modifiée

odbcDataAdapter1.Update(dataset,table);


Mais peut etre que mon odbcUpdate n'a pas les bons paramètres dans sa CommandText. Que faut il lui mettre ?

voici ce que j'ai:

odbcUpdate.CommandText @"UPDATE Fiche SET Genre ?";
odbcUpdate.Connection = this.odbcConnection1;
odbcUpdate.Parameters.Add(new System.Data.Odbc.OdbcParameter("Genre", System.Data.Odbc.OdbcType.NVarChar, 50, "Genre"));


Autre question: quel est la différence entre un objet oledb et odbc ?
Commenter la réponse de Blacknight91titi
Arthenius 1183 Messages postés mercredi 21 janvier 2004Date d'inscription 6 septembre 2011 Dernière intervention - 16 sept. 2004 à 15:21
0
Merci
pour ton update est ce que le sourcecolumn dans ton dataset s'appelle bien "Genre" .... l'erreur peut venir de la....

le dataadapter ce sert du sourcecolumn pour mettre en relation la valeur du parametre et le champ du dataset correspondant a cette valeur...

si l'insert le delete marche y a pas de raison...

la différence entre odbc et oledb....

ben oledb est + rapide il me semble.... ca doit etre du natif...
alors que la couche odbc...justement t'en rajoute une ... de couche... du coup c plus lent...

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
Commenter la réponse de Arthenius
Blacknight91titi 1754 Messages postés jeudi 17 juin 2004Date d'inscription 9 mars 2015 Dernière intervention - 16 sept. 2004 à 17:35
0
Merci
8-) Bl@cknight91Titi :-p

C'est bon j'ai trouvé !

En créant un oleDbAdapter, il me génère automatiquement les oleDbCommand pour l'insert, le select, l'update, et le delete.

la différence entre odbc et oledb....

je ne sais pas si c'est plus rapide, mais en tout cas, oledb permet de se passer du fichier DSN qui est obligatoire en odbc. Donc j'opte pour l'oleDb.
Commenter la réponse de Blacknight91titi
Arthenius 1183 Messages postés mercredi 21 janvier 2004Date d'inscription 6 septembre 2011 Dernière intervention - 16 sept. 2004 à 17:48
0
Merci
c plus rapide à mon avis....

mouais mais j'aime pas le code qu'il génere....
m'enfin c toi qui voit :-p

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
Commenter la réponse de Arthenius
Blacknight91titi 1754 Messages postés jeudi 17 juin 2004Date d'inscription 9 mars 2015 Dernière intervention - 17 sept. 2004 à 10:55
0
Merci
8-) Bl@cknight91Titi :-p

Bon, je retire ce que j'ai dit.
l'Update ne fonctionne tjr pas. la dataset est pourtant bien modifié, en oledb tt est généré automatiquement, dc je peux pas avoir fais d'erreur là dessus.

Alors je comprends pas ?

Si je fais en ExecuteNonQuery(), je suis obligé de tt me tapé pour chaque table.

Arf, dur dur la vie C#
Commenter la réponse de Blacknight91titi
Arthenius 1183 Messages postés mercredi 21 janvier 2004Date d'inscription 6 septembre 2011 Dernière intervention - 17 sept. 2004 à 11:14
0
Merci
mouai c clair....

poste le script de ta command update généré...

mais bon a priori ca devrait fonctionner...

ton dataset tu la aussi générer ????

ca vient peut etre de la ...???
Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
Commenter la réponse de Arthenius
Blacknight91titi 1754 Messages postés jeudi 17 juin 2004Date d'inscription 9 mars 2015 Dernière intervention - 17 sept. 2004 à 11:31
0
Merci
8-) Bl@cknight91Titi :-p

ma dataset je ne l'ai pas généré. puisqu'elle est remplie par la méthode Fill().

this.oleDbUpdateFiche.CommandText @"UPDATE Fiche SET [Autre_caractéristiques] ?, Classification_horticole = ?, Coloris_feuillage = ?, Coloris_fleurs = ?, Cultivar = ?, Cycle_biologique = ?, Espèce = ?, Famille = ?, Genre = ?, Nom_commun = ?, Origine = ?, Parfum = ?, [Période_commercialisation] = ?, [Période_floraison] = ?, Photo = ?, Synonyme = ?, Toxicité = ?, Utilisation = ? WHERE (num = ?) AND ([Autre_caractéristiques] = ? OR ? IS NULL AND [Autre_caractéristiques] IS NULL) AND (Classification_horticole = ? OR ? IS NULL AND Classification_horticole IS NULL) AND (Coloris_feuillage = ? OR ? IS NULL AND Coloris_feuillage IS NULL) AND (Coloris_fleurs = ? OR ? IS NULL AND Coloris_fleurs IS NULL) AND (Cultivar = ? OR ? IS NULL AND Cultivar IS NULL) AND (Cycle_biologique = ? OR ? IS NULL AND Cycle_biologique IS NULL) AND (Espèce = ? OR ? IS NULL AND Espèce IS NULL) AND (Famille = ? OR ? IS NULL AND Famille IS NULL) AND (Genre = ? OR ? IS NULL AND Genre IS NULL) AND (Nom_commun = ? OR ? IS NULL AND Nom_commun IS NULL) AND (Origine = ? OR ? IS NULL AND Origine IS NULL) AND (Parfum = ? OR ? IS NULL AND Parfum IS NULL) AND (Photo = ? OR ? IS NULL AND Photo IS NULL) AND ([Période_commercialisation] = ? OR ? IS NULL AND [Période_commercialisation] IS NULL) AND ([Période_floraison] = ? OR ? IS NULL AND [Période_floraison] IS NULL) AND (Synonyme = ? OR ? IS NULL AND Synonyme IS NULL) AND (Toxicité = ? OR ? IS NULL AND Toxicité IS NULL) AND (Utilisation = ? OR ? IS NULL AND Utilisation IS NULL)";
this.oleDbUpdateFiche.Connection = this.oleDbConnection1;
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Autre_caractéristiques", System.Data.OleDb.OleDbType.VarWChar, 255, "Autre_caractéristiques"));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Classification_horticole", System.Data.OleDb.OleDbType.VarWChar, 50, "Classification_horticole"));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Coloris_feuillage", System.Data.OleDb.OleDbType.VarWChar, 50, "Coloris_feuillage"));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Coloris_fleurs", System.Data.OleDb.OleDbType.VarWChar, 50, "Coloris_fleurs"));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Cultivar", System.Data.OleDb.OleDbType.VarWChar, 50, "Cultivar"));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Cycle_biologique", System.Data.OleDb.OleDbType.VarWChar, 50, "Cycle_biologique"));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Espèce", System.Data.OleDb.OleDbType.VarWChar, 50, "Espèce"));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Famille", System.Data.OleDb.OleDbType.VarWChar, 50, "Famille"));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Genre", System.Data.OleDb.OleDbType.VarWChar, 50, "Genre"));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Nom_commun", System.Data.OleDb.OleDbType.VarWChar, 50, "Nom_commun"));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Origine", System.Data.OleDb.OleDbType.VarWChar, 50, "Origine"));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Parfum", System.Data.OleDb.OleDbType.VarWChar, 50, "Parfum"));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Période_commercialisation", System.Data.OleDb.OleDbType.VarWChar, 75, "Période_commercialisation"));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Période_floraison", System.Data.OleDb.OleDbType.VarWChar, 75, "Période_floraison"));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Photo", System.Data.OleDb.OleDbType.VarWChar, 255, "Photo"));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Synonyme", System.Data.OleDb.OleDbType.VarWChar, 50, "Synonyme"));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Toxicité", System.Data.OleDb.OleDbType.VarWChar, 50, "Toxicité"));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Utilisation", System.Data.OleDb.OleDbType.VarWChar, 255, "Utilisation"));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_num", System.Data.OleDb.OleDbType.Integer, 0, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "num", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Autre_caractéristiques", System.Data.OleDb.OleDbType.VarWChar, 255, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Autre_caractéristiques", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Autre_caractéristiques1", System.Data.OleDb.OleDbType.VarWChar, 255, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Autre_caractéristiques", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Classification_horticole", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Classification_horticole", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Classification_horticole1", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Classification_horticole", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Coloris_feuillage", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Coloris_feuillage", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Coloris_feuillage1", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Coloris_feuillage", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Coloris_fleurs", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Coloris_fleurs", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Coloris_fleurs1", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Coloris_fleurs", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Cultivar", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Cultivar", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Cultivar1", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Cultivar", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Cycle_biologique", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Cycle_biologique", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Cycle_biologique1", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Cycle_biologique", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Espèce", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Espèce", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Espèce1", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Espèce", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Famille", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Famille", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Famille1", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Famille", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Genre", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Genre", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Genre1", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Genre", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Nom_commun", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Nom_commun", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Nom_commun1", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Nom_commun", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Origine", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Origine", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Origine1", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Origine", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Parfum", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Parfum", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Parfum1", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Parfum", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Photo", System.Data.OleDb.OleDbType.VarWChar, 255, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Photo", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Photo1", System.Data.OleDb.OleDbType.VarWChar, 255, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Photo", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Période_commercialisation", System.Data.OleDb.OleDbType.VarWChar, 75, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Période_commercialisation", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Période_commercialisation1", System.Data.OleDb.OleDbType.VarWChar, 75, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Période_commercialisation", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Période_floraison", System.Data.OleDb.OleDbType.VarWChar, 75, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Période_floraison", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Période_floraison1", System.Data.OleDb.OleDbType.VarWChar, 75, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Période_floraison", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Synonyme", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Synonyme", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Synonyme1", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Synonyme", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Toxicité", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Toxicité", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Toxicité1", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Toxicité", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Utilisation", System.Data.OleDb.OleDbType.VarWChar, 255, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Utilisation", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateFiche.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Utilisation1", System.Data.OleDb.OleDbType.VarWChar, 255, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Utilisation", System.Data.DataRowVersion.Original, null));



j'ai essyayé avec cette CommandText ci:

this.oleDbUpdateFiche.CommandText @"UPDATE Fiche SET [Autre_caractéristiques] ?, Classification_horticole = ?, Coloris_feuillage = ?, Coloris_fleurs = ?, Cultivar = ?, Cycle_biologique = ?, Espèce = ?, Famille = ?, Genre = ?, Nom_commun = ?, Origine = ?, Parfum = ?, [Période_commercialisation] = ?, [Période_floraison] = ?, Photo = ?, Synonyme = ?, Toxicité = ?, Utilisation = ?)";



mais sans plus de résultat. Par ailleurs sais tu à quoi corresponde tous les Parameters ou le champ commence par 'Original' ?

je fais bien le:

this.oleDbDataAdapter1.UpdateCommand = this.oleDbUpdateFiche;
Commenter la réponse de Blacknight91titi
Blacknight91titi 1754 Messages postés jeudi 17 juin 2004Date d'inscription 9 mars 2015 Dernière intervention - 17 sept. 2004 à 11:33
0
Merci
8-) Bl@cknight91Titi :-p

Oups !
J'en ai peut etre trop mis là ???
J'aurai dû te mettre que le 1er champ en Parameters.Add(), c que de la répétition avec les autres champs le reste

pardon :S
Commenter la réponse de Blacknight91titi
Arthenius 1183 Messages postés mercredi 21 janvier 2004Date d'inscription 6 septembre 2011 Dernière intervention - 17 sept. 2004 à 11:50
0
Merci
oui la ca va je crois que j'ai assez de code...

bon je résume...
si j'ai bien compris pour ton dataadapter et ta connection tu a fais un cliquer deplacer de ta table sur ta form....
jusque la ce ok...

apres certes tu fais un fill qui rempli un ds mais le mieux qd tu a fait ton dataadapter c'est de generer le groupe de données (genere un dataset qui la meme tronche que ta table...)

pour ce faire...tu fais ton dataadapter et connection avec cliquer deplace....
puis menu données de vs -> generer le group de données->dans un nouveau dataset (tu peux modifier le nom...et selectionner les tables que tu veux (en l'occurence celle defini par ton dataadapter...c trop long a taper dataadapeter....)
tu clique sur ok et la ton ds apparait sur ta form
et tu rempli ton ds avec ton da...

da.fill(ds, "MATABLE");


Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
Commenter la réponse de Arthenius
Blacknight91titi 1754 Messages postés jeudi 17 juin 2004Date d'inscription 9 mars 2015 Dernière intervention - 17 sept. 2004 à 12:51
0
Merci
8-) Bl@cknight91Titi :-p

Merci de ton aide, on y est enfin arrivé :)

En générant la dataset part le dataadapter, l'update fonctionne.

C'est quand même compliqué l'update, ils auraient pu faire plus simple chez Microsoft.
Commenter la réponse de Blacknight91titi
Arthenius 1183 Messages postés mercredi 21 janvier 2004Date d'inscription 6 septembre 2011 Dernière intervention - 17 sept. 2004 à 14:23
0
Merci
faut bien justifier notre salaire en fin de mois :o))))

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
Commenter la réponse de Arthenius

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.