Bonjour,
Je cherche à remplir une datagridview à partir de données que je récupère de ma base Oracle. J'ai testé le code suivant mais celà n'a pas l'air de fonctionner. Je n'ai aucune erreur.
Tout d'abord j'ai crée une classe qui définit les attributs à récupérer et qui ressemble à ceci:
et ci-dessous le code mon formulaire principale:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MONPROJET { class MaClasse { public int Col1{ get; set; } public string Col2{ get; set; } public int Col3{ get; set; } } }
Merci,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Configuration; using System.Data.Common; using Oracle.DataAccess.Client; using Oracle.DataAccess.Types; using MONPROJET.Models; namespace MONPROJET.Views { public partial class monFormulaire: Form { List<MaClasse> listMaClasse= new List<MaClasse>(); DataTable MaClasseTable = new DataTable(); public monFormulaire() { InitializeComponent(); } void CreateDataTable() { // Create table schema. DataColumn MaClasseCol1 = new DataColumn("Col1", typeof(int)); DataColumn MaClasseCol2 = new DataColumn("Col2", typeof(string)); DataColumn MaClasseCol3 = new DataColumn("Col3", typeof(int)); MaClasseTable.Columns.AddRange(new DataColumn[] { MaClasseCol1 , MaClasseCol2 , MaClasseCol3 }); foreach (MaClasse mc in listMaClasse) { DataRow newRow = MaClasseTable.NewRow(); newRow["Col1"] = mc.Col1; newRow["Col2"] = mc.Col2; newRow["Col3"] = mc.Col3; MaClasseTable.Rows.Add(newRow); } dataGridView.DataSource = MaClasseTable; } private void btnRemplir_Click(object sender, EventArgs e) { List<MaClasse> listMaClasse= new List<MaClasse>(); string connectionString = GetConnectionString(); string queryString = "SELECT COL1, COL2, COL3 FROM MATABLE WHERE COL1= VAL1 AND COL2= VAL2 AND COL3= VAL3"; using (OracleConnection connection = new OracleConnection(connectionString)) { OracleCommand command = connection.CreateCommand(); command.CommandText = queryString; try { connection.Open(); OracleDataReader reader = command.ExecuteReader(); while (reader.Read()) { MaClasse maclasse = new MaClasse(); maclasse .COL1= (int)reader["COL1"]; maclasse .COL2= reader["COL2"] as String; maclasse .COL3= (int)reader["COL3"]; listMaClasse.Add(maclasse); } reader.Close(); } catch (Exception ex) { Console.WriteLine(ex.Message); } } CreateDataTable(); } static private string GetConnectionString() { // To avoid storing the connection string in your code, // you can retrieve it from a configuration file. // Assumes Northwind.mdb is located in the c:\Data folder. return "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=servicename)));User Id=userid;Password=password;"; } } }
Partager