Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

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


Information sur la source

Catégorie :Base de données Source .NET ( DotNet ) Classé sous : datagrid, dataadapter, databinding, bdd, currencymanager Niveau : Débutant Date de création : 22/11/2004 Date de mise à jour : 24/04/2006 13:25:40 Vu / téléchargé: 27 882 / 5 419

Note :
7,4 / 10 - par 5 personnes
7,40 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (23)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Salut, tout le monde.
Suite à pas mal de discussion sur ce forum, je me suis dis qu'un petit exemple de comment utiliser un dataadapter simplement pour gérer une table d'une base de données, pourrait servir à certain(es).
Tout est dans le code....j'essaye d'expliquer un peu comment faire un select (avec parametre) et parametrer un dataadapter....
Je parle aussi du databinding, lier un dataset à des textbox....
bref ca peut servir pour debuter une appli en utilisant une BDD...
il se peut que vous soyez obliger de modifier la chaine de connection (ConnectionString) afin que l'appli puisse se connecter à la base de données Northwind de sql Server....
c'est la seul chose que vous devrez faire pour voir le code fonctionner....(par défaut la bdd est chercher sur localhost)...

Voila un petit code sans prétention, mais qui peu aider ceux (et celles) qui commence en c# et qui veulent "attaquer" une bdd...
 

Conclusion

Voila....
si ca vous plait poster un commentaire...
si ca vous plait pas...poster aussi.... :o)))

@+
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

22 novembre 2004 09:53:19 :
j'avais oublie de cocher la case .Net
04 avril 2005 12:02:21 :
Coorection du titre de la source
24 avril 2006 13:25:41 :
Rajout : * un bouton Nouveau * un bouton Supprimer * Utilisation des CurrencyManager

Commentaires et avis

signaler à un administrateur
Commentaire de jimmy69 le 23/11/2004 13:00:47

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

signaler à un administrateur
Commentaire de Arthenius le 23/11/2004 13:09:07

tant mieux :o)))

c la pour ca :o)

signaler à un administrateur
Commentaire de MADfou le 03/01/2005 17:07:01

merci moi aussi il me fallait un truc comme ca !

tu déchire

signaler à un administrateur
Commentaire de petitelarve le 24/02/2005 14:56:46

ahh cool moi c le databinding qui manquait dans ma pti :) merki

signaler à un administrateur
Commentaire de smp le 10/03/2005 10:53:24

Une erreur sur sqlDataAdapter1.Fill(DataSet1) ??

signaler à un administrateur
Commentaire de Arthenius le 10/03/2005 10:59:16

??? ou ca ???
peut etre un pb de connexion a ta base ???
verifie la ConnectionString...

signaler à un administrateur
Commentaire de piroman38 le 23/03/2005 13:49:29

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

signaler à un administrateur
Commentaire de funnydjo le 25/04/2005 23:18:57

Merci c'est super pratique ton petit tuto.

signaler à un administrateur
Commentaire de Arthenius le 26/04/2005 09:16:35

merci :o)))

signaler à un administrateur
Commentaire de gcorbineau le 27/06/2005 14:55:34

je te remercie de ton source il m'a débloqué sur un point de détail assez important

signaler à un administrateur
Commentaire de collinv10 le 09/03/2006 19:41:39

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

signaler à un administrateur
Commentaire de Arthenius le 24/04/2006 13:26:39

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 ^^

signaler à un administrateur
Commentaire de blind666 le 04/07/2006 11:52:20

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 :-)

signaler à un administrateur
Commentaire de Arthenius le 04/07/2006 14:30:11

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..

signaler à un administrateur
Commentaire de blind666 le 04/07/2006 15:46:45

ok j essaierais de le faire et je tiens au courant.
Merci d avance!!!!!

signaler à un administrateur
Commentaire de spocks50 le 29/01/2007 20:39:42

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

signaler à un administrateur
Commentaire de KOFFIPaul le 24/04/2007 14:26:49

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.

signaler à un administrateur
Commentaire de Arthenius le 24/04/2007 14:45:42

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"]

signaler à un administrateur
Commentaire de KOFFIPaul le 26/04/2007 09:46:56

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"]]).

signaler à un administrateur
Commentaire de KOFFIPaul le 03/05/2007 09:44:53

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

signaler à un administrateur
Commentaire de Arthenius le 03/05/2007 10:37:15

heu je t'ai repondu en mp ^^

signaler à un administrateur
Commentaire de adfane le 19/07/2007 16:19:01

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

signaler à un administrateur
Commentaire de Openflyer7 le 11/03/2009 17:06:45

Je débute en C#, super ton code !!

Merki,

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Maj bdd par datagrid?! [ par gog ] J'ai remplis un datagrid avec un dataadapter et un dataset,maintenant j'aimerais mettre à jour la bdd, mais je ne sais pas comment récupérer les donné BDD avec affichage progressif dans une datagrid [ par Guegue85 ] Bonjour à tous,J'ai une aplli en C# qui gère une BDD de 30000 enregistrements. J'ai besoin d'afficher ces 30000 enregistrements dans une DataGrid. Au Datagrid mise àjour BDD [ par patou1007 ] Bonjour,J'aimerais  savoir également comment  mettre à jour ma base de données (insert,delete,update) directement en effectua Remplir un comboBox dans un datagrid (databinding) [ par MaxWAT ] Bonjour, j'ai cherché ici et ailleurs auparavant et j'ai malheureusement pas trouvé ce que je cherchais...J'ai une datagrid qui est databind Je n'arrive pas à modifier une base de donnée sous SQL server Express 2005 à partir d'une dataset et aussi par après à partir d'une datagrid [ par mydust ] Bonjour, je souhaiterai modifier une base de donnée après avoir modifier un dataset ou un datagrid. C'est tout simple mais bon, je n'y arriv Datagrid .NET 1.1 [ par RM50Man ] Bonjour,       Est-ce que c'est possible de changer le nom d'une colonne, lorsqu'on a charger une table a l interie Mise à jour d'un datagrid [ par Pepin21 ] Bonjour,voilà mon problème : je dois faire une page en asp.net et C# qui doit permettre de faire une recherche suivant plusieurs critèr Datagrid .NET [ par RM50Man ] Bonjour, petit problème   Je supprime une ligne de mon objet dataset qui correspond au datasource de mon datagrid. Ensuite je l'en Exporter un datagrid vers excel / vers fichier txt [ par FAIZA1974 ] bonjour,je suis débutante en c#. Je programme un logiciel en c# et sql server comme base de données. Lors du clic sur un bouton, je vou MAJ de données dans liste déroulante de DataGrid [ par titi66 ] Bonjour je développe en VS2005 une appli sur une petite base Access. Dans un formulaire (F1) j'ai une datagrid sur une table et dans&nb


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,749 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.