Bien le bonjour !
Je suis actuellement en train de développer un site internet divisé en deux interfaces pour un projet personnel (chaque interface = 1 site mais les deux opèrent sur la même DB) le tout en mvc 5 et C#.
La première interface dite client permet aux clients de se register, se login et créer des commandes qui sont stockées en base. Cette interface est déjà faite.
Maintenant mon problème est que je ne parvient pas à récupérer toutes les commandes et à les stocker dans un tableau multidimensionnel de string pour l'interface admin.
Par exemple j'ai actuellement 20 commandes de tests. Soit je relis tout le temps la même commande soit j'obtient un out of range ... :'(
Voici ma table Commandes:
Pièce jointe 216203
Voici le code dans mon modèle Commande.cs:
Seulement voilà impossible d'aller plus loin qu'un seul tuple :/
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 public string[,] getCommandes() { int size = 0; using (SqlConnection sqlCnx = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["cnx"].ConnectionString)) { sqlCnx.Open(); using (SqlCommand cmd = new SqlCommand(@"SELECT COUNT(id) FROM Commandes", sqlCnx)) { cmd.CommandType = CommandType.Text; using (SqlDataReader sqlrd = cmd.ExecuteReader()) { sqlrd.Read(); size = sqlrd.GetInt32(0); sqlrd.Close(); sqlCnx.Close(); } } } string[,] cmdTab = new string[size, 13];//13 car 13 colonnes en table int cptLine = 0; int calc = size * 13; using (SqlConnection sqlCnx = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["cnx"].ConnectionString)) { sqlCnx.Open(); using (SqlCommand cmd = new SqlCommand(@"SELECT * FROM Commandes", sqlCnx)) { cmd.CommandType = CommandType.Text; using (SqlDataReader sqlrd = cmd.ExecuteReader()) { while(sqlrd.Read()) { for (int i = 0; i < size; i++)//pour chaque commande { for (int cptRd = 0; cptRd < calc; cptRd++)//pour chaque colonne { switch (sqlrd.GetName(cptRd)) { case "Id": cmdTab[cptLine, 0] = sqlrd.GetInt32(cptRd).ToString(); break; case "Titre": cmdTab[cptLine, 1] = sqlrd.GetString(cptRd).ToString(); break; case "Style": cmdTab[cptLine, 2] = sqlrd.GetString(cptRd).ToString(); break; case "Description": cmdTab[cptLine, 3] = sqlrd.GetString(cptRd).ToString(); break; case "Longueur": cmdTab[cptLine, 4] = sqlrd.GetInt32(cptRd).ToString(); break; case "Largeur": cmdTab[cptLine, 5] = sqlrd.GetInt32(cptRd).ToString(); break; case "Budget": cmdTab[cptLine, 6] = sqlrd.GetInt32(cptRd).ToString(); break; case "DateCmd": cmdTab[cptLine, 7] = sqlrd.GetDateTime(cptRd).ToString(); String[] dateCoupee = cmdTab[cptLine, 7].ToString().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); cmdTab[cptLine, 7] = dateCoupee[0]; String[] dateCoupee2 = cmdTab[cptLine, 7].ToString().Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries); cmdTab[cptLine, 7] = dateCoupee2[1] + "/" + dateCoupee2[0] + "/" + dateCoupee2[2]; break; case "Status": cmdTab[cptLine, 8] = sqlrd.GetString(cptRd).ToString(); break; case "Progress": cmdTab[cptLine, 9] = sqlrd.GetInt32(cptRd).ToString(); break; case "PrixTeam": cmdTab[cptLine, 10] = sqlrd.GetInt32(cptRd).ToString(); break; case "Acheteur": cmdTab[cptLine, 11] = sqlrd.GetString(cptRd).ToString(); break; case "NomMap": cmdTab[cptLine, 12] = sqlrd.GetString(cptRd).ToString(); break; } } cptLine += 1; } //cptCol += 1; } sqlrd.Close(); sqlCnx.Close(); } } } return cmdTab; }
voici l'appel de la méthode depuis mon contrôleur CommandesController.cs dans mon ActionResult Index:
De plus, je n'ai également aucune idée de comment afficher les données récupérées afin de les afficher sous forme de tableau dans ma vie via le ViewBag :/ Donc si vous aviez une idée je vous la pique volontiers hihi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Commandes cmd = new Commandes(); string[,] commandes = cmd.getCommandes(); ViewBag.Commandes = commandes;
Bien cordialement et merci de m'avoir lu !
Bad_Pop
Partager