Bonsoir,
J'ai un petit soucis que je n'arrive pas à résoudre malgré mes multiples recherches.
En effet, j'ai une procédure stockée qui attend un paramètre (l'id du client) afin d'effectuer un select.
Sur SQL tout se passe bien, quand j'exec j'ai le résultat voulu..
Par contre sous MVC j'ai un 'bug' par rapport (je pense) à mon paramètre...
Voici des exemples de mon code:
Mon contrôleur:
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 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using DAL; namespace EphecAirlinesClient.Controllers { public class OverviewController : Controller { private Ephec_AirlinesEntities contexteEF = new Ephec_AirlinesEntities(); // GET: Overview public ActionResult Index(int? id) { return View(contexteEF.Sp_Select_All_Reservation_By_Id_Client(id)); } } }
Ma procédure stockée (qui fonctionne):
Ma vue:
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 ALTER PROCEDURE [dbo].Sp_Select_All_Reservation_By_Id_Client @IdClient INT AS BEGIN SET NOCOUNT ON; SELECT r.RES_Id AS "Réservation n°", p.PLA_Date AS "Date du vol", vdepart.VIL_Libelle AS 'Départ', varrivee.VIL_Libelle AS 'Arrivée', r.RES_Prix_Total AS "Prix total" FROM Reservation r JOIN Client AS c ON c.CLI_Id = r.RES_Client_Id JOIN Planning p ON p.PLA_Id = r.RES_Pla_Id JOIN Vol AS v ON v.VOL_Id = p.PLA_Vol_Id JOIN Ville AS vdepart ON vdepart.VIL_Id = v.VOL_Vil_Depart_Id JOIN Ville AS varrivee ON varrivee.VIL_Id = v.VOL_Vil_Arrivee_Id WHERE c.CLI_Id = @IdClient END
Mon message d'erreur:
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 @model DAL.Sp_Select_All_Reservation_By_Id_Client_Result @{ ViewBag.Title = "Visualiser mes vols"; } <h2>Visualiser mes vols</h2> <div> <hr /> <dl class="dl-horizontal"> <dt> @Html.DisplayNameFor(model => model.Réservation_n_) </dt> <dd> @Html.DisplayFor(model => model.Réservation_n_) </dd> <dt> @Html.DisplayNameFor(model => model.Date_du_vol) </dt> <dd> @Html.DisplayFor(model => model.Date_du_vol) </dd> <dt> @Html.DisplayNameFor(model => model.Départ) </dt> <dd> @Html.DisplayFor(model => model.Départ) </dd> <dt> @Html.DisplayNameFor(model => model.Arrivée) </dt> <dd> @Html.DisplayFor(model => model.Arrivée) </dd> <dt> @Html.DisplayNameFor(model => model.Prix_total) </dt> <dd> @Html.DisplayFor(model => model.Prix_total) </dd> </dl> </div> <p> @Html.ActionLink("Edit", "Edit", new { /* id = Model.PrimaryKey */ }) | @Html.ActionLink("Back to List", "Index") </p>
Merci d'avance...Erreur du serveur dans l'application '/'.
L'élément de modèle passé dans le dictionnaire est de type « System.Data.Entity.Core.Objects.ObjectResult`1[DAL.Sp_Select_All_Reservation_By_Id_Client_Result] », mais ce dictionnaire requiert un élément de modèle de type « DAL.Sp_Select_All_Reservation_By_Id_Client_Result ».
Description : Une exception non gérée s'est produite au moment de l'exécution de la requête Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.
Détails de l'exception: System.InvalidOperationException: L'élément de modèle passé dans le dictionnaire est de type « System.Data.Entity.Core.Objects.ObjectResult`1[DAL.Sp_Select_All_Reservation_By_Id_Client_Result] », mais ce dictionnaire requiert un élément de modèle de type « DAL.Sp_Select_All_Reservation_By_Id_Client_Result ».
EDIT:
J'ajoute le fait que quand j'essaye avec SqlParameter j'ai le problème suivant:
En gros je sais le faire en ADO.Net sauf que le prof souhaite qu'on fasse une partie d'un projet avec Entity Framework..Erreur CS1503 Argument 1*: conversion impossible de 'System.Data.SqlClient.SqlParameter' en 'int?' EphecAirlinesClient C:\Users\j0n\source\Projet\EphecAirlinesClient\EphecAirlinesClient\Controllers\OverviewController.cs 26 Actif
Partager