Datagridview + listview

Nicodelphi Messages postés 82 Date d'inscription vendredi 19 janvier 2007 Statut Membre Dernière intervention 19 janvier 2014 - 19 août 2007 à 19:42
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 14 juin 2008 à 12:10
Slt je voudrais savoir si il est possible de remplir un datagridview en fonction d'une listview su oui comment
Merci

5 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
19 août 2007 à 19:52
Salut,

Pourquoi pas ?
Sinon en l'état la question ne veut pas dire grand chose, je ne pense pas que tu auras des réponses plus claires.

/*
coq
MVP Visual C#
CoqBlog
*/
0
Nicodelphi Messages postés 82 Date d'inscription vendredi 19 janvier 2007 Statut Membre Dernière intervention 19 janvier 2014
19 août 2007 à 20:47
oui en fait j'ai une listview ou j'enregistre des donnée est je veut que si je clioc sur un bouton le datagrid se remplise identique a la listview
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
19 août 2007 à 20:52
Les contrôles sont là pour afficher des données, pas les contenir.
Ton problème est un problème d'architecture : si tu avais les données organisées normalement, il te suffirait de provoquer leur représentation dans un contrôle ou l'autre, au lieu de devoir "convertir" d'un contrôle à l'autre.

/*
coq
MVP Visual C#
CoqBlog
*/
0
bloodyangel90 Messages postés 7 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 11 juin 2008
9 juin 2008 à 09:36
lu y a un moyen il fau ke tu le face en deux étapes.
1) tu enregistre a l'aide d'une requête "insert to" dans la base de donnée
2) tu récupaire a laide d'une requête "select " et tu la colle dans le datagrid en méttant le dataset comme source du datagrid et c'est fini.

tu c koi je te met le code:



//Initialisation de la connection








DbProviderFactory
dbpf =

DbProviderFactories
.GetFactory(

"System.Data.OleDb"
);


DbConnection
oConn;


DbDataAdapter
oDA;


DataSet
oDS;


//Initialisation de la connection






DbProviderFactory
dbp =

DbProviderFactories
.GetFactory(

"System.Data.OleDb"
);


DbConnection
oCon;


string
Query_Insert;


//Remise à zéro et création des options de la liste

listView1.Clear();







//Active la fonction classement

listView1.Sorting =




SortOrder
.Ascending;


//Active les checkboxes

listView1.CheckBoxes =




true
;


//Active l'affichage des grilles

listView1.GridLines =




true
;


//Active le mode détail

listView1.View =




View
.Details;


//Création des colonnes






ColumnHeader
header1, header2, header3, header4, header5;header1 =


new



ColumnHeader
();header2 =


new



ColumnHeader
();header3 =


new



ColumnHeader
();header4 =


new



ColumnHeader
();header5 =


new



ColumnHeader
();


//Création des noms de olonnes avec quelques options (taille, etc...)

header1.Text =




"Nom"
;header1.TextAlign =


HorizontalAlignment
.Left;header1.Width = 300;

header2.TextAlign =


HorizontalAlignment
.Left;header2.Text =


"Taille"
;header2.Width = 80;

header3.TextAlign =


HorizontalAlignment
.Left;header3.Text =


"Modifier le"
;header3.Width = 115;

header4.TextAlign =


HorizontalAlignment
.Left;header4.Text =


"Répertoire"
;header4.Width = 125;

header5.TextAlign =


HorizontalAlignment
.Left;header5.Text =


"description"
;header5.Width = 1300;


//Ajout des colonnes à la listView

listView1.Columns.Add(header1);


listView1.Columns.Add(header2);


listView1.Columns.Add(header3);


listView1.Columns.Add(header4);


listView1.Columns.Add(header5);







//Récupération du path






string
Spath = folderBrowserDialog1.SelectedPath;


DirectoryInfo
dirInfo =

new



DirectoryInfo
(Spath);


//Connection à la base de données

oConn = dbpf.CreateConnection();


oConn.ConnectionString =




"Provider=SQLOLEDB.1;DataBase=PCDB;Server=nomduserveur;uid=;pwd=






//Connection à la base de données

oCon = dbpf.CreateConnection();


oCon.ConnectionString =




"Provider=SQLOLEDB.1;DataBase=PCDB;Server=nomduserveur;uid=;pwd=






//Ajout d'un filtre afin d'ouvrir que les fichiers texte (par exemple)






FileInfo
[] files = dirInfo.GetFiles(

"*.exe"
);


//Vérifie la présence de fichier du type sélectionner auparavent  








if
(files !=

null
){


//Pour chaque fichier trouvé, on récupére ces infos






foreach
(

FileInfo
file

in
files){


//Creation du DataSet

oDS =




new



DataSet
();oDA = dbpf.CreateDataAdapter();

oDA.SelectCommand = oConn.CreateCommand();


//enleve le .exe du file.name






string
[] T_filename = file.Name.Split(

'.'
);


string
S_filename = T_filename[0];


// fait la recherche au niveau du serveur sql

{







ListViewItem
item =

new



ListViewItem
(file.Name);

//Nom du fichier

item.SubItems.Add(file.Length.ToString() +




" octets"
);

//Taille du fichier en octets

item.SubItems.Add(file.LastWriteTime.ToString());




//Date du dernier accés

item.SubItems.Add(file.Directory.ToString());




//Répertoire du fichier

oDA.SelectCommand.CommandText =




"SELECT * FROM PACKAGES WHERE packages.Pack_nom='"
+ S_filename +

"'"
;

oDA.Fill(oDS,


"packages"
);


foreach
(

DataRow
drpackages

in
oDS.Tables[

"packages"
].Rows){

oConn.Open();

item.SubItems.Add((


string
)drpackages[

"pack_description"
]);

// description des packages






//Creation du DataSet




listView1.Items.Add(item);




//Ajout à la liste









//insertion des données dans la base de donnée






DbCommand
oCmd = oConn.CreateCommand();

Query_Insert =


"INSERT INTO MODIFICATION(mod_pack_nom,mod_taille,mod_chemin,mod_date,mod_desc) values ('"
+ file.Name +

"',"
+ file.Length +

",'"
+ file.Directory +

"','"
+ (

DateTime
)file.LastWriteTime +

"','"
+ (

string
)drpackages[

"pack_description"
] +

"')"
;oCmd.CommandText = Query_Insert;


int
n;n=oCmd.ExecuteNonQuery() ;
0

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

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
14 juin 2008 à 12:10
Naturellement, chacun aura compris qu'il faut remplacer les requêtes baties à coup de concaténation par des requêtes paramétrées dans le post ci dessus, histoire d'éviter les problèmes de formatage mais surtout les problème de sécurité => injection SQL.

/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous