Ajout de données base access avec C#

bridierb Messages postés 11 Date d'inscription mercredi 4 mars 2009 Statut Membre Dernière intervention 26 juin 2010 - 21 mai 2010 à 21:43
bridierb Messages postés 11 Date d'inscription mercredi 4 mars 2009 Statut Membre Dernière intervention 26 juin 2010 - 27 mai 2010 à 14:25
Bonjour,

Je vous expose mon souci.

Je suis en train de créer un interface graphique via Visual Studio 2008 en WindowsForm pour gérer les adhérents d'une association (ajout, suppression, calcul des cotisations moyennes, etc...).

Je voudrais ajouter des éléments dans ma table Access existante.

Ma table :

ADHERANT
id_adherant, Nom, Prénom
1, KIROUL, Pierre
2, EPHYS, Ben
3, COVER, Harry
4, AYMARD, Jean
5, PECHEUR,Martin
*)Les noms sont fictifs, toute ressemblance avec des personnes existantes serait fortuite.

Je veux ajouter, par exemple Nom HEAT, Prenom Aline
avec l'id_adherant qui s'incrémente automatiquement.

Pour ajouter un adhérant j'ai fait ça :

private void rb_adherant_CheckedChanged(object sender, EventArgs e)
{
if (rb_adherant.Checked)
{
gb_adherant.Visible = true;
gb_group.Visible = false;
txt_nom.Focus();
OleDbConnection connec = new OleDbConnection();
connec.ConnectionString = co;
connec.Open();
//Ajout adhérant
OleDbCommand cmd2 = new OleDbCommand();
cmd2.Connection = connec;
cmd2.CommandText = "Insert into ADHERANT values(max(id)+1); txt_nom; txt_prenom;";
int nb1 = cmd2.ExecuteNonQuery();
{
connec.Close();

Message d'erreur :
Caractères trouvés après la fin de l'instruction SQL.

Je passe par un RadioBouton qui affiche un GroupBox dans lequel il y a 2 TextBox, une pour ajouter le nom et l'autre pour ajouter le prénom sachant que l'id doit s'incrémenter automatiquement.
Merci pour vôtre aide.

2 réponses

Miltiades Messages postés 233 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 25 octobre 2010
25 mai 2010 à 16:42
tu n'as pas l'impression d'avoir comme un soucis avec ta requête SQL? par exemple, le fait de vouloir ajouter des valeurs après avoir refermer la parenthèse des values? sans parler du séparateur ; en lieu et place de la virgule...

Avant que tu ne reviennent pour l'erreur suivant, je ne saurais trop te conseiller de regarder l'utilisation des OdbcParameter...

Bon courage.

Nul ne devient grand par la guerre...
0
bridierb Messages postés 11 Date d'inscription mercredi 4 mars 2009 Statut Membre Dernière intervention 26 juin 2010
27 mai 2010 à 14:25
C'est bon j'ai trouvé

//Ajout adhérant
if (rb_adherant.Checked)
{
//Commande ajout adhérant
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = connec;
//récupération de l'id_max
cmd.CommandText = "SELECT MAX(id_adh) FROM Adherant";
int max_id = (int)cmd.ExecuteScalar();
//Incrémentation automatique de l'id adhérant
cmd.CommandText = "Insert into adherant values(" + (max_id + 1) + ", '" + txt_nom.Text + "', '" + txt_prenom.Text + "')";

cmd.ExecuteNonQuery();
0
Rejoignez-nous