Datagrid C# et Sql

Signaler
Messages postés
8
Date d'inscription
dimanche 17 octobre 2004
Statut
Membre
Dernière intervention
3 août 2005
-
Messages postés
130
Date d'inscription
mardi 21 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2008
-
YO !
Voila je suis novice en Csharp et je vous explik mon projet.
Je voudrais faire un pti log de gestion d'une collection de cd assez simple.
Les cd sont ranger dans un range cd ki comporte des numeros dc ca fé une petite bas ea 2 colonne une pour les emplacement et lotre pr le titre du cd.

J'ai fait une mini base dans access puis sous C# j'ai fait un datagrid ki fé reference a cette base de donné juske la tout va bien j'ai donc mes 2 colonnes dans mon datagrid je suis heureu.

La j'ai besoin de vous pouvez vous me dire comment par exmple faire des requetes sql ? enfin imaginon 1 bouton pour classer les films il faut donc faire une requete sql du type "select FILMS from CD order by ... " les "..." etant une variable ke rentre l'utilisateur par exemple.
Enfin deja ce qui m'interesse serait de faire des requetes SQL dessus apré je pourrai me debrouiller pour ajouter, suppirmer , recherche dans mes tables.

Voila j'espere que vous pourrez m'aider.

Vincent.

14 réponses

Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010

http://faqcsharp.developpez.com/?page=adonet
A votre service si qlq chose t'echappe

Bonne chance..

YaoYao !!
1 + 1 = 10
Messages postés
180
Date d'inscription
mardi 21 décembre 2004
Statut
Membre
Dernière intervention
12 juin 2008

Salut.
Je me suis mis au c# y'a pas tres longtemps pour mon projet de stage et je travaille aussi avec des bases de donnees access (qui me donnent bien du fil a retordre). J'utilise ADO.Net avec le provider Ole-Db qui permet de travailler avec des bases de donnees access sous c#.
Dans mon programme je fais des requetes sql et affiche les resultats dans un datagrid
Voici une partie mon code si ca peut t'aider :

using System.Data.OleDb; //librairie a rajouter pour pouvoir se connecter

string
connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Documents and Settings\\...\\mabase.mdb";
OleDbConnection myConnection = new OleDbConnection( connectionString );
myConnection.Open();
string query = " "; //requete sql
OleDbCommand myCommand = new OleDbCommand();
myCommand.CommandText = query;
myCommand.Connection = myConnection;
myCommand.ExecuteNonQuery();
OleDbDataAdapter myAdapter = new OleDbDataAdapter( query, myConnection );
DataSet APData = new DataSet();
myAdapter.Fill( APData );
myConnection.Close();
dataGrid1.DataSource = APData.Tables[0]; //remplissage du datagrid

Voila c'est peut etre pas parfait mais c'est ce que j'ai utilise et pour le moment tout va bien. Voila j'espere que cela t'aidera.

Bon courage.

*** Kakol ***
Messages postés
8
Date d'inscription
dimanche 17 octobre 2004
Statut
Membre
Dernière intervention
3 août 2005

Rolala ! la 2eme reponse est exactment ce qu'il me fallait ! ton code est parfait !

Je peu changer la requete en fonction des radios boutton coché par exmeple etc... c magnifik mdr !!! Merci bcp !!

Mais merci aussi pour la prmeiere reponse ! Avec les 2 cumulé je pense ariV a faire un bon truk !! merci a vous !
Messages postés
8
Date d'inscription
dimanche 17 octobre 2004
Statut
Membre
Dernière intervention
3 août 2005

Ah g une autre question peut etre un peu baleze, j'aimerais mettre une barre de progression car kan je lance une requete le ten kil se conecte a la base et otu ca met un peu de tne pr faire plus agreable une petite barre de progression serait la bienvenue.

Je ne sais pa du tout coment ca marche malgré que j'ai un peu chercher mais je pense ke dès ke japui su rle bouton "lanceur de requet" on pourai metre en route la progressbar apré les parametres je c pa trop....
Messages postés
130
Date d'inscription
mardi 21 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2008

Salut,
Pour ta barre de progression c'est trop chaud pour moi. Cependant si tu veux tu n'as qu'a mettre ton curseur en forme de sablier le temps du chargement. ( ok c'est moins top que la barre mais ca fait tout de meme propre)

voici le script :

private
void buttonview_Click(
object sender, System.EventArgs e)
{
Cursor = Cursors.WaitCursor;

//ouverture de la bdd.

Cursor = Cursors.Arrow;
}

Et voila en attendant la barre .

--- Moucave , petit singe au pays du c# ---
Messages postés
8
Date d'inscription
dimanche 17 octobre 2004
Statut
Membre
Dernière intervention
3 août 2005

Ué pamal ! Meric beaucoup !

Une derniere chose vous m'avez l'air detre des baleze alor je suis avec mon datagrid pui ma liste de cd ( tout ca pour une gesiton de collection de cd ) et maintenant je voudrai , pour supprimer un cd par exemple , copier tout une colonne de mon datagrid par exmeple la colonne FILMS dans une combo box comme ca je fé derouler les film je selectionne celui a supprimer je clik et HOP disparu ! lol vs savez comment faire ?
Messages postés
8
Date d'inscription
dimanche 17 octobre 2004
Statut
Membre
Dernière intervention
3 août 2005

je pense a kelke chose comme ca


comboBox1.Items.Add(dataGridView1......);

apré le datagridviex je c pa koi mettre comme propriete...

ps:fodrai aussi que ca soit actualiser sans avoir besoin de cliquer sur un boutton
Messages postés
180
Date d'inscription
mardi 21 décembre 2004
Statut
Membre
Dernière intervention
12 juin 2008

Je ne sais pas trop comment on fait pour mettre toute une colonne de ton datagrid dans un combobox mais moi pour supprimer des elements de mon datagrid je selectionne la ligne correspondante a eliminer. Si ca peut t'aider voila comment je recupere la valeur de mes cellules quand je clique dans le datagrid
int
iRownr=this.dataGrid1.CurrentCell.RowNumber;
int iColnr=this.dataGrid1.CurrentCell.ColumnNumber;
string cellvalue1=this.dataGrid1[iRownr,iColnr].ToString();

Je pense que tu peux te servir de ca (surtout la derniere ligne) pour mettre ces valeurs dans ton combobox, en faisant une boucle sur le numero des lignes pour un numero de colonne donne par exemple.
voila je ne sai pas si ca va marcher mais tu peux tester. Bon courage

*** Kakol ***
Messages postés
8
Date d'inscription
dimanche 17 octobre 2004
Statut
Membre
Dernière intervention
3 août 2005

Ué ca marche par exmeple la g juste testé je peu recuperer le numero de la collone selectionnée alor g 2 autres question comment je recupere la valeur ? par exmeple la valeur de la ligne 9 ?
Et puis comment je la supprime ?

Ca doi etre 2 commande tres simple mais j'arrive pa a les trouver

( pc: ca fé 2 foi ke vs me donner un code avec datagrid1 alor que moi c datagridview1 dc j'adapte le code mais ca change rien ? )
Messages postés
8
Date d'inscription
dimanche 17 octobre 2004
Statut
Membre
Dernière intervention
3 août 2005

Vous aller me trouver barbant lol mé le code de kakol pour faire des requete marche impeccable sof que c'est long d'aller chercher la base de odnné de faire des requete et de remetre le resultat ca met o moi 5/6 seconde pour se faire y'auri til pa un moyen plu rapide de la faire ?

Je c pa du tout mé par exmeple copier le contenue de la base dans le datagrid de faire tout skon veu dessus avec des comande datagrid ca va bcp plu vite et a la fin avant de kitter genre un bouton UPDATE ki rebalance tout le datagrid ds la base pour la mettre a jour ? ce qui ferait que 5s au debut et 5s a la fin et toutes les operation intermediaires seraien presk immadiates....
Messages postés
180
Date d'inscription
mardi 21 décembre 2004
Statut
Membre
Dernière intervention
12 juin 2008

Normalement string cellvalue1=this.dataGrid1[9,2].ToString(); te donne la valeur de la celulle en colonne 9, ligne 2. Pour supprimer tu fais une requete sql (delete from table where valeur = ...) en mettant valeur = " + cellvalue1.Replace("'","''") + "
Sinon pour ton probleme de temps de connection moi ca se fait presque instantanement donc je vois pas.

*** Kakol ***
Messages postés
180
Date d'inscription
mardi 21 décembre 2004
Statut
Membre
Dernière intervention
12 juin 2008

euh pardon c'est l'inverse c'est ligne 9 colonne 2 desolee.

*** Kakol ***
Messages postés
130
Date d'inscription
mardi 21 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2008

Salut,

Tes requetes prennent du temps car tu travail en mode deconnecte donc pour chaque operation que tu realise sur ta base de donnees tu dois te connecter, executer la requete, charger le dataset, etc...

--- Moucave , petit singe au pays du c# ---
Messages postés
130
Date d'inscription
mardi 21 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2008

Tu devrais etudier ADO.net de facon plus aprofondie pour trouver la configuration de travail qui te conviendrait le plus, du style le mode connecte ne te conviendrait t'il pas mieux que ton mode de travail actuel? Pour le bouton update je ne vois pas comment tu peux faire pour travailler sur un datagrid et mettre a jour ta base de donnees sans passer par des requetes sql. Moi je prends en compte les changements de ma datagrid dans des variables que j'injecte dans une requete sql de type update.

--- Moucave , petit singe au pays du c# ---