MVC ViewModel和Sql查询

时间:2014-12-16 23:18:10

标签: asp.net-mvc asp.net-mvc-viewmodel

我是MVC的新手,来自一家经典的ASP商店。我们习惯于编写自己的SQL选择来将信息提取到我们的asp页面中。我试图在MVC中找到类似的方法,我在asp.net mvc and sql queries找到了一个我想要遵循的例子。

我想我理解其中大部分内容但是我对以下内容感到不满:  //将数据转换为字符串[]并将其返回..

有人可以为我扩展这个或者给我其他例子吗?

我想要完成的是从表中提取数据并在我的视图中创建树视图。

class MainPageViewModel
{
    //this data is from a different table.
    //and goes on the left of the page
    public string Categories {get; set;}
    //this data is also from a different table.
    //and goes on the center of the page
    public List<Products> Products {get; set;}
}

控制器:

public class HomeController : Controller
{
    // GET: /Home/
    public ActionResult Index()
    {
        MainPageViewModel vm = new MainPageViewModel();
        vm.Categories = GetCategories();
        //use the GetProducts() to get your products and add them.
        vm.Products.Add(...); 
        return View(vm); //pass it into the page
    }

    string[] GetCategories()
    {
        DataTable data = GetDataFromQuery("SELECT * FROM Categories WHERE..");
        //convert the data into a string[] and return it..
    }
    //maybe it has to return something else instead of string[]? 
    string[] GetProducts()
    {
        DataTable data = GetDataFromQuery("SELECT * FROM Products WHERE..");
        //convert the data into a string[] and return it..
    }

    DataTable GetDataFromQuery(string query)
    {
        SqlDataAdapter adap = 
         new SqlDataAdapter(query, "<your connection string>");
        DataTable data = new DataTable();
        adap.Fill(data);
        return data;
    }  
}

1 个答案:

答案 0 :(得分:1)

你没有写sql代码。你可以使用Linq to Sql轻松实现。只需将linq解决方案添加到sql类中。然后添加数据库,即可连接数据库而无需sql代码。