Mettre à jour des champs d'une table Access

Résolu
Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 - 15 sept. 2004 à 15:24
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 - 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 :)

13 réponses

Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
17 sept. 2004 à 11:58
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..."
3
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
16 sept. 2004 à 09:38
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..."
0
Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 2
16 sept. 2004 à 15:03
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 ?
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
16 sept. 2004 à 15:21
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..."
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 2
16 sept. 2004 à 17:35
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.
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
16 sept. 2004 à 17:48
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..."
0
Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 2
17 sept. 2004 à 10:55
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#
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
17 sept. 2004 à 11:14
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..."
0
Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 2
17 sept. 2004 à 11:31
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;
0
Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 2
17 sept. 2004 à 11:33
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
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
17 sept. 2004 à 11:50
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..."
0
Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 2
17 sept. 2004 à 12:51
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.
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
17 sept. 2004 à 14:23
faut bien justifier notre salaire en fin de mois :o))))

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
Rejoignez-nous