如何在Asp.Net MVC4中使用MS Sql存储过程

时间:2013-06-28 18:13:40

标签: asp.net-mvc-4

我正在使用VS2012,MVC4 C#,SQL 2008 R2

我有一个存储过程,它返回一个包含两个计算列的列表。在我的SP中,我需要从View传递两个参数,这些参数将从页面加载的javascript生成并存储在HiddenFields中。

当我创建像

这样的引用时,我已经遵循了这个Post
Rest Context = new Rest();
List<Rest> RT = Context.ExecuteStoreQuery......

我收到错误。

有人能告诉我调用存储过程并从View传递值的正确方法。

1 个答案:

答案 0 :(得分:1)

这就是我使用模型,视图和控制器进行操作的方法

在我的Model类中,我有两个.cs文件,DefaultConnection.cs和Rest.cs

public class DefaultConnection : DbContext
{
    public DbSet<Rest> Restart { get; set; }
}

在Rest.cs中

public class Rest
{
    //These two properties are columns in Stored Procedure, Id -PK, 
    //Distance - Computed column in SP
    public int Id { get; set; }   
    public double Distance { get; set; }
}

在控制器

Public ActionResult Get_Data()
{
    DefaultConnection Context = new DefaultConnection();
    IEnumerable<Rest> results = Context.Database.SqlQuery<Rest>
        ("Your SP @para1 = xyz, @para2 = abc") //If you have parameters or ("Just SP")
        .ToList();
    return View(results);
}

在视图中

@using MVC.Models
@model IEnumerable<Rest>

@{
     ViewBag.Title = "GetData";
 }

 <h2>GetData</h2>

 @foreach (Rest rt in @Model)
 {
   <table>
       <tr>
           <td>@rt.Id</td><td></td>
           <td>@rt.Distance</td>
        </tr>
   </table>

 }