首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

linq + mvc开发模式的有关问题

2011-12-31 
linq + mvc开发模式的问题如果我有两张表,一张用户表(Users),一张状态表(State)表,用户Id与状态Id是主外键

linq + mvc开发模式的问题
如果我有两张表,一张用户表(Users),一张状态表(State)表,用户Id与状态Id是主外键关系。如果我想实现对用户信息的增、删、改、查(查询所有(分页),按状态或者用户的Id去查询),用linq + mvc开发模式去实现该怎么做了,请各位牛人帮帮忙,因为我是初学者,可不可以请各位帮忙写一个下例子呢?我将感激涕零......

[解决办法]
Linq to SQL 提供了对其进行增、删、改、查的方法。你可以查MSDN
与其他实现MVC模式一样,只是LINQ TO SQL 的返回结果要注意,LINQ查出来的结果存在于表当中,像DATASET一样,读取时要用foreach。


[解决办法]
LINQ查出来的结果存在于表当中,像DATASET一样?
晕啊 。


[解决办法]

参考下:


http://www.cnblogs.com/lyj/archive/2008/01/28/1056133.html
[解决办法]
给你个例子:

mvcGridView类

C# code
using System; 
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.UI.WebControls;

namespace Web
{
  public class mvcGridView:GridView
  {
    public string Key
    { get; set; }

    public ViewPage ViewPage
    { get { return this.Page as ViewPage; } }

    protected override void OnLoad(EventArgs e)
    {
      this.DataSource = this.ViewPage.ViewData[this.Key]; //得到数据源
      this.DataBind();  //绑定  这样就不用手动写N个绑定了
      base.OnLoad(e);
    }
  }
}


view:
HTML code
 <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %> 

<%@ Register assembly="Web" namespace="Web" tagprefix="cc1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
  <title> </title>
  <link href="../../Content/css/main.css" rel="stylesheet" type="text/css" />
  <script src="../../Scripts/jquery-1.3.2-vsdoc2.js" type="text/javascript"> </script>
  <script type="text/javascript" >
  function DelCustomer(CustomerID) {
    if (confirm("确定删除吗?")) {
      $.ajax({
        type: "get",
        dataType: "html",
        url: "/Home/DelCustomer/" + CustomerID,
        success: function(msg) {
            if (msg == "成功") {
              alert("删除成功!");
              window.location.reload();
            }
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
          alert("删除失败!\n信息:" + errorThrown + "," + textStatus + "\n");
        }
      })
  }
  }
</script>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <cc1:mvcGridView ID="MvcGridView1" Key="Customers" AutoGenerateColumns="False"  runat="server">


    <Columns>
      <asp:BoundField DataField="CustomerID" HeaderText="客户ID" />
        <asp:BoundField DataField="CompanyName" HeaderText="公司名" />
        <asp:BoundField DataField="ContactName" HeaderText="联系人" />
        <asp:BoundField DataField="ContactTitle" HeaderText="联系人职务" />
        <asp:BoundField DataField="Address" HeaderText="地址" />
        <asp:BoundField DataField="City" HeaderText="城市" />
        <asp:BoundField DataField="Region" HeaderText="地区" />
        <asp:BoundField DataField="Postalcode" HeaderText="邮编" />
        <asp:BoundField DataField="Country" HeaderText="国家" />
        <asp:BoundField DataField="Phone" HeaderText="电话" />
        <asp:BoundField DataField="Fax" HeaderText="传真" />
        <asp:TemplateField>
        <HeaderTemplate>
        删除
        </HeaderTemplate>
        <ItemTemplate>
          <a href="javascript:void(0);" onclick="DelCustomer(' <%# Eval("CustomerID") %>')">删除 </a>
        </ItemTemplate>
        </asp:TemplateField>
      </Columns>
    </cc1:mvcGridView>
 
  </div>
  </form>
</body>
</html>



Controller:

 
C# code
public ActionResult GridView()        {            var dbc = new DBCustomerDataContext();//DBCustomer 是linq to sql类            ViewData["Customers"] = from c in dbc.DBCustomers select c;            return View();        } public ActionResult DelCustomer(string id)        {            string result = "";            try            {                DBCustomerDataContext dbcustomer = new DBCustomerDataContext();                string i = id;                var customer = dbcustomer.DBCustomers.First(c => c.CustomerID.Equals(i));                dbcustomer.DBCustomers.DeleteOnSubmit(customer);                dbcustomer.SubmitChanges();                result = "成功";            }            catch(System.Exception error)            {                _log.Error(error.Message.ToString());                result = "失败";            }            return Content(result);        } 

热点排行