从sql表中检索数据并在视图中显示

时间:2014-03-11 03:35:50

标签: c# entity-framework asp.net-mvc-4

好的家伙所以我是MVC的新手我已经构建了模型和控制器来将数据插入到sql表中,但现在我想将这些数据检索到另一个View。到目前为止我的代码:

所以我有一个名为“ProductTable”的sql表,其中包含4个实体“ID”“Name”“Broi”和“Cena”

CREATE TABLE [dbo].[ProductTable] (
    [ID]   INT        IDENTITY (1, 1) NOT NULL,
    [Name] NCHAR (10) NOT NULL,
    [Broi] INT        NOT NULL,
    [Cena] NCHAR (10) NOT NULL,
    PRIMARY KEY CLUSTERED ([ID] ASC)
);

我已经在此表中保存了一些数据

我有一个模型类

[Table("ProductTable")]
public class ProductTable
{
    //public int ID { get; set; }

    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]

    public int ID { get; set; }

    public string Name { get; set; }

    public int Broi { get; set; }

    public int Cena { get; set; }
}

和DbContext的另一个模型类

public class DefaultConnection : DbContext
{
    public DbSet<ProductTable> Products { get; set; }
}

控制器从View中检索数据并将其传递给模型

public ActionResult Table()
{
    return View(new ProductTable());
}

[HttpPost]       
public ActionResult Table(ProductTable product)
{
    if (!ModelState.IsValid)
    {
        return View(product);
    }
    using (var contex = new DefaultConnection())
    {
        contex.Products.Add(product);
        contex.SaveChanges();
    }
    return View();
}

和使用TextBoxes和提交按钮查看此控制器 但现在我想要检索保存的数据并将其显示给anoter View。 我试过这个但是我收到了一个错误:

  

'ProductTable'上的'Cena'属性无法设置为'String'值。您必须将此属性设置为“Int32”

类型的非null值
private DefaultConnection db = new DefaultConnection();

public ViewResult TableData()
{
    return View(db.Products.ToList());
}

1 个答案:

答案 0 :(得分:0)

在数据库表格中,cena列的类型为NChar,而model的列为type int

这应该如何运作

//Change this
public int Cena { get; set; }

//to this
public String Cena { get; set; }