EXEMPLE D'UTILISATION D'UN DATAGRID, DATAADAPTER, SELECT SUR BDD AVEC PARAMETRE,

cs_jimmy69 Messages postés 778 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 27 novembre 2008 - 23 nov. 2004 à 13:00
zouariahmedtn Messages postés 6 Date d'inscription mardi 20 septembre 2011 Statut Membre Dernière intervention 16 mars 2012 - 15 mars 2012 à 00:16
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/27738-exemple-d-utilisation-d-un-datagrid-dataadapter-select-sur-bdd-avec-parametre-databinding

zouariahmedtn Messages postés 6 Date d'inscription mardi 20 septembre 2011 Statut Membre Dernière intervention 16 mars 2012
15 mars 2012 à 00:16
merçi c'est bien vous avez m'aider beaucoup
rutalain Messages postés 1 Date d'inscription mercredi 13 août 2008 Statut Membre Dernière intervention 6 septembre 2011
6 sept. 2011 à 10:18
Cher amis programmeur je voudrai solicite de votre aide en C#.Net 2010 en windows application, je veut au fait fixer diffentes tailles pour les colonne de DataGrid mais je ne trouve pas la solution.
Merci d'avance pour votre aide
Openflyer7 Messages postés 2 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 11 mars 2009
11 mars 2009 à 17:06
Je débute en C#, super ton code !!

Merki,
adfane Messages postés 2 Date d'inscription samedi 21 avril 2007 Statut Membre Dernière intervention 28 août 2007
19 juil. 2007 à 16:19
salut,
est ce que tu peux m aider stp?
je doit réalisé une application vb.net(visual studio 2005) avec sql server 2005 comme base de données.
1)je ne sais pas comment je peux definir les relations entre les table apartir de visual studio 2005.
2)est ce que tu peux me dire comment je peux créer ma base et mes tables (avec les relations) par le code vb.net?
je sais que je pause des problemes (betes) mais j ai j amais utilisé dot net et le sql server 2005.
merci d avance
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
3 mai 2007 à 10:37
heu je t'ai repondu en mp ^^
KOFFIPaul Messages postés 3 Date d'inscription jeudi 12 avril 2007 Statut Membre Dernière intervention 3 mai 2007
3 mai 2007 à 09:44
Message :
Mon formulaire est basé sur deux tables (Bâtiment et Appartement) et la clé primaire de Bâtiment est une clé étrangère dans la table Appartement, mon datagril est basé sur l'appartement, mais il affiche uniquement les appartements ayant le même numéro Bâtiment (numéro du Bâtiment affiché dans le formulaire).
Mon problème est que lorsque je vais un update, je reçois un message d'erreur « la variable @numAppt doit être déclarée »
Voici quelques lignes de code qui concernent les dataadatper et Update
Dataadatper :
//Select
CmdSelect1 = new SqlCommand("SELECT numBatiment,Ilot,Lot,quartierBatiment,communeBatiment FROM BATIMENT",MaConnect);
CmdSelect1.CommandType = System.Data.CommandType.Text;

CmdDelete1 new SqlCommand("DELETE FROM BATIMENT WHERE numBatiment @numBatime",MaConnect);
CmdDelete1.Parameters.Add(new SqlParameter("@numBatime",SqlDbType.Int,5,"numBatiment"));

//On parametre l'update
CmdUpdate1 new SqlCommand("UPDATE BATIMENT SET Ilot @IlotBa, Lot = @LotBa, quartierBatiment = @quartierBa, communeBatiment = @communeBa");
CmdUpdate1.Parameters.Add(new SqlParameter("@IlotBa",SqlDbType.Int,4,"Ilot"));
CmdUpdate1.Parameters.Add (new SqlParameter("@LotBa", SqlDbType.Int,4,"Lot"));
CmdUpdate1.Parameters.Add(new SqlParameter("@quartierBa", SqlDbType.VarChar,30,"quartierBatiment"));
CmdUpdate1.Parameters.Add(new SqlParameter("@communeBa", SqlDbType.VarChar,30,"communeBatiment"));
CmdUpdate1.Parameters.Add(new SqlParameter("@numBatime", SqlDbType.Int,5,"numBatiment"));

//On parametre l'insertion
CmdInsert1 = new SqlCommand("INSERT INTO BATIMENT(numBatiment,Ilot,Lot,quartierBatiment,communeBatiment) VALUES(@numBatime,@IlotBa, @LotBa, @quartierBa, @communeBa)",MaConnect);
CmdInsert1.Parameters.Add(new SqlParameter("@numBatime", SqlDbType.Int,5,"numBatiment"));
CmdInsert1.Parameters.Add(new SqlParameter("@IlotBa", SqlDbType.Int,4,"Ilot"));
CmdInsert1.Parameters.Add(new SqlParameter("@LotBa", SqlDbType.Int,4,"Lot"));
CmdInsert1.Parameters.Add(new SqlParameter("@quartierBa", SqlDbType.VarChar,30,"quartierBatiment"));
CmdInsert1.Parameters.Add(new SqlParameter("@communeBa", SqlDbType.VarChar,30,"communeBatiment"));

//On utilise le dataadapter pour remplir le dataset
//On attribue la command au SelectCommand
BatDataApter = new SqlDataAdapter(CmdSelect1);
BatDataApter.UpdateCommand = CmdUpdate1;
BatDataApter.InsertCommand = CmdInsert1;
BatDataApter.DeleteCommand = CmdDelete1;

// On vide le dataset
dsBat.Clear();
//On rempli le dataset
BatDataApter.Fill(dsBat.Tables["BATIMENT"]);
//On ote tout databinding sur les texbox
TxtNumBat.DataBindings.Clear();
TxtLotBat.DataBindings.Clear();
TxtIlotBat.DataBindings.Clear();
TxtQuarBat.DataBindings.Clear();
TxtComBat.DataBindings.Clear();
//Om met emplace le databinding sur les texbox
TxtNumBat.DataBindings.Add("Text", dsBat.Tables["BATIMENT"], "numBatiment");
TxtLotBat.DataBindings.Add("Text", dsBat.Tables["BATIMENT"],"Ilot");
TxtIlotBat.DataBindings.Add("Text", dsBat.Tables["BATIMENT"], "Lot");
TxtQuarBat.DataBindings.Add("Text", dsBat.Tables["BATIMENT"],"quartierBatiment");
TxtComBat.DataBindings.Add("Text", dsBat.Tables["BATIMENT"], "communeBatiment");
}
catch(Exception xcp)
{
MessageBox.Show(xcp.Message);
}
try
{

//Select
CmdSelect2 new SqlCommand("SELECT numAppart,typeAppart,montantLoyerAppart,etatAppart,numBatiment FROM APPARTEMENT WHERE numBatiment @numBatim",MaConnect);
CmdSelect2.CommandType = System.Data.CommandType.Text;

//On crée le parametre
SqlParameter param = new SqlParameter("@numBatim",SqlDbType.Decimal);
param.Value = TxtNumBat.Text;
//
CmdSelect2.Parameters.Add(param);

//On parametre le delete
CmdDelete2 new SqlCommand("DELETE FROM APPARTEMENT WHERE numAppart @numAppt",MaConnect);
CmdDelete2.Parameters.Add(new SqlParameter("@numAppt",SqlDbType.Int,5,"numAppart"));
//
//On parametre l'update
CmdUpdate2 new SqlCommand("UDATE APPARTEMENT SET numAppart @numAppt,typeAppart = @typeAppt, montantLoyerAppart = @montantLoyerAppt,etatAppart = @etatAppt,numBatiment = @numBatim, WHERE numAppart = @numAppt",MaConnect);
//
CmdUpdate2.Parameters.Add(new SqlParameter("@typeAppt",SqlDbType.VarChar,10,"typeAppart"));
CmdUpdate2.Parameters.Add(new SqlParameter("@montantLoyerAppt",SqlDbType.Money,8,"montantLoyerAppart"));
CmdUpdate2.Parameters.Add(new SqlParameter("@etatAppt",SqlDbType.Bit,1,"etatAppart"));
CmdUpdate2.Parameters.Add(new SqlParameter("@numBatim",SqlDbType.Int,5,"numBatiment"));
CmdUpdate2.Parameters.Add(new SqlParameter("@numAppt", SqlDbType.Int,5,"numAppart"));
//
//On parametre l'insert
CmdInsert2 = new SqlCommand("INSERT INTO APPARTEMENT(numAppart,typeAppart,montantLoyerAppart,etatAppart,numBatiment) VALUES(@numAppt,@typeAppt,@montantLoyerAppt,@etatAppt,@numBatim)",MaConnect);
//
CmdUpdate2.Parameters.Add(new SqlParameter("@typeAppt",SqlDbType.VarChar,10,"typeAppart"));
CmdUpdate2.Parameters.Add(new SqlParameter("@montantLoyerAppt",SqlDbType.Money,8,"montantLoyerAppart"));
CmdUpdate2.Parameters.Add(new SqlParameter("@etatAppt",SqlDbType.Bit,1,"etatAppart"));
CmdUpdate2.Parameters.Add(new SqlParameter("@numBatim",SqlDbType.Int,5,"numBatiment"));
CmdUpdate2.Parameters.Add(new SqlParameter("@numAppt", SqlDbType.Int,5,"numAppart"));
//
//On utilise le datadapter pour remplir le dataset
//On attribue la command au selecommand
AppartDataApter = new SqlDataAdapter(CmdSelect2);
AppartDataApter.UpdateCommand = CmdUpdate2;
AppartDataApter.InsertCommand = CmdInsert2;
AppartDataApter.DeleteCommand = CmdDelete2;
//
//On vide le dataset
dsAppart.Clear();
//On rempli le dataset
AppartDataApter.Fill(dsAppart.Tables["Liste_Appartement"]);
//
//On affecte le datasource du datgrid afin de visualiser les données
DGAppar.DataSource = dsAppart.Tables["Liste_Appartement"];
CMAppart = (CurrencyManager)BindingContext[dsAppart.Tables["Liste_Appartement"]];
GpAppart.Enabled=true;
Bt_AppAj.Enabled = true;
Bt_AppSupp.Enabled = true;

}
catch(Exception xcp)
{
MessageBox.Show(xcp.Message);
}
#endregion
Update:
#region Bt_Valider_Click
private void Bt_Valider_Click(object sender, System.EventArgs e)
{
try
{
//On force la validation des modification faite dans les textbox
TxtNumBat.DataBindings["Text"].BindingManagerBase.EndCurrentEdit();
TxtLotBat.DataBindings["Text"].BindingManagerBase.EndCurrentEdit();
TxtIlotBat.DataBindings["Text"].BindingManagerBase.EndCurrentEdit();
TxtQuarBat.DataBindings["Text"].BindingManagerBase.EndCurrentEdit();
TxtComBat.DataBindings["Text"].BindingManagerBase.EndCurrentEdit();
//
//On valide les modifs faite
CMAppart.EndCurrentEdit();
//
//On charge les dataadapteurs
AppartDataApter.Update(dsAppart.Tables["Liste_Appartement"]);
BatDataApter.Update(dsBat.Tables["BATIMENT"]);
//
//On vide les dataset
dsAppart.Clear();
dsBat.Clear();
//
//On rempli les dataset
AppartDataApter.Fill(dsAppart.Tables["Liste_Appartement"]);
BatDataApter.Fill(dsBat.Tables["BATIMENT"]);
}
catch(Exception xcp)
{
MessageBox.Show(xcp.Message);
}
}
#endregion
KOFFIPaul Messages postés 3 Date d'inscription jeudi 12 avril 2007 Statut Membre Dernière intervention 3 mai 2007
26 avril 2007 à 09:46
Mon cher ARTHENUS, je te dis grand merci pour tout. Tu as vu juste, le problème était au niveau de la syntaxe. A la réception de la datasource, je n'est pas inscris le CurrencyManager ( CM = (CurrencyManager) BindingContext[ds.Tables["Liste_Categorie"]]).
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
24 avril 2007 à 14:45
Bonjour, désolé de ne pas avoir repondu à votre MP (pas eu le temps ^^)

sinon pour le bouton supprimer ou nouveau etes vous sur d'avoir cette ligne :

ds.Tables.Add("Liste_Categorie");

dans votre application

ou alors le Currencymanager qui n'est pas bien parametrer sur votre appli

il faut bien utiliser ce genre de syntaxe :

CM = (CurrencyManager) BindingContext[ds.Tables["Liste_Categorie"]];

des que votre datagrid recoit comme datasource : ds.Tables["Liste_Categorie"]
KOFFIPaul Messages postés 3 Date d'inscription jeudi 12 avril 2007 Statut Membre Dernière intervention 3 mai 2007
24 avril 2007 à 14:26
Sujet : EXEMPLE-UTILISATION-DATAGRID-DATAADAPTER-SELECT-SUR-BDD-AVEC_27738.zip

Message :
Dabort, je vous dit grand merci pour le code, il fait parfaitement mon affaire (je fais mes premier pas dans le développemnt). Cepandent quand je l'implémente sur ma machine en environnement VBDOT.NET 2003, les boutons "nouveau et supprimer" ne fonctionnent pas. message d'erreur 'Bt_nouveau_Click':la référence d'objet n'est pas définie à une intance d'objet.
'Bt_supprimer_Click':la référence d'objet n'est pas définie à une intance d'objet.
Aussi, lorsque je crée mes objets (Private cuurencyManager CMAppart et Private cuurencyManager CMBat)
à l'exécution, il me donne les messages d'erreurs suivants:le champ'GestionImmobilière.F_CreationBatiement.CMAppart' n'set jamais assigné et possédera toujours sa valeur par défaut nul. Et le champ'GestionImmobilière.F_CreationBatiement.CMBat' n'set jamais utilsé.
Aidez mois s'il vous plais.
spocks50 Messages postés 15 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 13 février 2009
29 janv. 2007 à 20:39
Hello ca ces du beau travail...moi aussi je cherchais quelque chose comme cela...jai surement vue mais pas assez clair pour le voir... merci encore ...et continue de faire connaitre au autres ton travail.... Moi je fait un gestionnaire de disque.... ces pas de la petite gomme....rire....

merci encore...

spocks50@hotmail.com
cs_blind666 Messages postés 2 Date d'inscription mardi 30 mai 2006 Statut Membre Dernière intervention 4 juillet 2006
4 juil. 2006 à 15:46
ok j essaierais de le faire et je tiens au courant.
Merci d avance!!!!!
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
4 juil. 2006 à 14:30
merci merci

pour ton pb de visualisation dans un autre grid

utilise le meme datasource pour chacune de tes grids mais affiche des choses differentes pour chacune d'elle

ainsi si dans ta grid de selection tu change d'enregistremnt ca devrait mettre a jour la 2eme grid de visu....
je pense..
cs_blind666 Messages postés 2 Date d'inscription mardi 30 mai 2006 Statut Membre Dernière intervention 4 juillet 2006
4 juil. 2006 à 11:52
Yeah man !!!!!!

C est du bon boulot et ça fait plaisir de voir quelque chose d aussi clair quand tu debutes!!!!!!
Merci...

Un petit exemple avec un datagrid, selection de lignes et visualisation dans un autre grid ça le ferait bien aussi (j arrive pas a le faire!!!), ceux que je trouve sur le net ne sont pas clairs :-)
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
24 avril 2006 à 13:26
voila j'ai mis a jour...
en rajoutant un bouton nouveau et supprimer

et rajout de l'utilisation des currencymanager ..bien plus propre que ce que j'avais fait ^^
collinv10 Messages postés 1 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 9 mars 2006
9 mars 2006 à 19:41
Arthenius t'es vraiment un "king"!

C'est vraiment un beau bout de code bien documenté qui m'a beaucoup, beaucoup aidé!

Merci beaucoup!!!!

Vincent
gcorbineau Messages postés 143 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 25 octobre 2006
27 juin 2005 à 14:55
je te remercie de ton source il m'a débloqué sur un point de détail assez important
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
26 avril 2005 à 09:16
merci :o)))
funnydjo Messages postés 1 Date d'inscription mercredi 5 novembre 2003 Statut Membre Dernière intervention 25 avril 2005
25 avril 2005 à 23:18
Merci c'est super pratique ton petit tuto.
piroman38 Messages postés 2 Date d'inscription vendredi 16 juillet 2004 Statut Membre Dernière intervention 23 mars 2005
23 mars 2005 à 13:49
Un seul mot : Merci :)

je luttais pour trouver quelquechose de clair concernant le traitement de données d'une DB SQL via C# et la tout y est !!!

GG THX
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
10 mars 2005 à 10:59
??? ou ca ???
peut etre un pb de connexion a ta base ???
verifie la ConnectionString...
cs_smp Messages postés 3 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 10 mars 2005
10 mars 2005 à 10:53
Une erreur sur sqlDataAdapter1.Fill(DataSet1) ??
Utilisateur anonyme
24 févr. 2005 à 14:56
ahh cool moi c le databinding qui manquait dans ma pti :) merki
cs_MADfou Messages postés 1 Date d'inscription lundi 28 avril 2003 Statut Membre Dernière intervention 3 janvier 2005
3 janv. 2005 à 17:07
merci moi aussi il me fallait un truc comme ca !

tu déchire
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
23 nov. 2004 à 13:09
tant mieux :o)))

c la pour ca :o)
cs_jimmy69 Messages postés 778 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 27 novembre 2008 1
23 nov. 2004 à 13:00
salut salut Arthenius,

C'est exactement ce qu'il faut au debutant en c# qui veulent attaquer les db ....et comme j'en fais partie c'est ce qu'il me faut !

Une bonne semaine

ciao
Christophe
Rejoignez-nous