我对ASP.NET很新,所以这可能是一个非常基本的问题。无论如何,我想在服务器上执行存储过程。我正如在上面提到的标题中那样使用ASP.NET MVC。目前可以查询整个表格:
控制器:
public JsonResult GetLaptopsJson()
{
Laptop[] laptops = context.GetTable<Laptop>().ToArray();
return Json(laptops, JsonRequestBehavior.AllowGet);
}
使用Javascript:
$.ajax({
url: '/Home/GetLaptopsJson',
contentType: 'application/html; charset=utf-8',
type: 'GET',
dataType: 'json'
})
.success(function (result) {
$('#search_result').empty();
for (var i = 0; i <= (result.length - 1); i++)
{
add_result(result[i].Id, result[i].Price);
}
})
.error(function (xhr, status) {
alert(status);
});
型号:
[Table(Name = "Laptop")]
public class Laptop
{
[Column(IsPrimaryKey = true)]
public int Id { get; set; }
[Column]
public string Name { get; set; }
[Column]
public decimal Price { get; set; }
}
如果我将控制器更改为以下,则不返回任何内容:
var laptops = context.ExecuteQuery<Laptop>(@"exec [dbo].[sp_Select_Laptop]");
此外,如果我将类型从笔记本电脑更改为对象,则不返回任何内容。这让我想到了一个事实,即我误解了一些基本的东西。
先谢谢你们!
EDIT1:
存储过程代码:
CREATE PROC [dbo].[sp_Select_Laptop]
AS
SET NOCOUNT ON
SELECT
[ID], [Name], [Price]
FROM
[dba].[dbo].[Laptop]
GO
答案 0 :(得分:0)
必须进行以下更改:
控制器:
DbContext dbcontext;
public HomeController()
{
this.dbcontext = new DbContext(Connections.connection);
}
var laptops = dbcontext.Database.SqlQuery<Laptop>(@"exec [dbo].[sp_Select_Laptop]");