天天看點

利用EntityFramework實作增删改查

利用EntityFramework實作增删改查

1.首先我們先要建立資料庫 建了一張tb_user表

利用EntityFramework實作增删改查

2.資料庫建好以後,我們就可以建立項目了

後面會跳出一個視窗,我這就先創一個空的窗體項目

然後進入主建面之後,我們先右鍵添加一個資料模型(右鍵-添加-建立項(點選data選擇ADO.Net 實體資料模型))

選擇自己剛剛建立的資料庫以及表

利用EntityFramework實作增删改查
利用EntityFramework實作增删改查

3.這些都弄好之後,我們可以建一個類(個人習慣,大家也可以把這些類裡面的東西直接寫在窗體裡面的加載事件裡面直接調用)下面是類裡面的代碼

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace _21_5_20
{
    public class UserManager
    {
        UserEntities1 ss = new UserEntities1();

        //添加使用者
        public int Add(tb_user user)
        {
           
            ss.tb_user.Add(user);
            return ss.SaveChanges();
        }
        //查詢全表
        public IEnumerable<tb_user> Select()
        {
            var result = from user in ss.tb_user
                         select user;

            return result.ToList();
        }
        //根據id查詢
        public tb_user SelectUserID(int id)
        {
            
            var user = (from u in ss.tb_user
                       where u.id == id
                       select u).FirstOrDefault();
             return user;
        }
        //删除
        public int Del(int id)
        {
            var entity = (from u in ss.tb_user
                          where u.id == id
                          select u).FirstOrDefault();

            ss.tb_user.Remove(entity);
            return ss.SaveChanges();
        }
        //修改
        public int Update(tb_user user)
        {
            ss.Entry<tb_user>(user).State = System.Data.Entity.EntityState.Modified;
            return ss.SaveChanges();
        }
    }
}
           

然後建立一個主視窗我這是利用Repeater實作資料顯示的代碼如下

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="delete.aspx.cs" Inherits="_21_5_20.delete" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <table >
                <tr>
                  <th>編号</th>
                     <th>姓名</th>
                     <th>性别</th>
                     <th>電話</th>
                     <th>注冊日期</th>
                     <th>類型</th>
                    <th>操作</th>
                </tr>
            <asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
                <ItemTemplate>
                    <tr>
                        <td><%# Eval("id")%></td>
                         <td><%# Eval("Name")%></td>
                         <td><%# Eval("Gender")%></td>
                         <td><%# Eval("Telephone")%></td>
                         <td><%# Eval("Regdate")%></td>
                         <td><%# Eval("userType")%></td>
                         <td>
                             <asp:LinkButton ID="LinkButton1" CommandName="del" CommandArgument='<%#Eval("id")%>' runat="server">删除</asp:LinkButton>
                             <asp:LinkButton ID="LinkButton2" CommandName="b"  runat="server">編輯</asp:LinkButton>
                              <asp:LinkButton ID="LinkButton3" CommandName="Add"  runat="server">增加</asp:LinkButton>
                         </td>

                    </tr>
                </ItemTemplate>
            </asp:Repeater>
                </table>
        </div>
    </form>
</body>
</html>
           

主視窗cs裡的代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace _21_5_20
{
    public partial class delete : System.Web.UI.Page
    {
        UserManager manager = new UserManager();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                string msg = Request.QueryString["msg"];
                if (msg!=null)
                {
                    Response.Write("<script>alert('" + msg + "')</script>");
                    BD();
                }
                BD();
            }
          
        }
        //綁定
        public  void BD()
        {
            this.Repeater1.DataSource = manager.Select();
            this.Repeater1.DataBind();
        }

        protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            string id = e.CommandArgument.ToString();
            if(e.CommandName== "del")
            {
                if (manager.Del(int.Parse(id))>0){
                    Response.Write("<script>alert('删除成功')</script>");
                    BD();
                }
            }else if (e.CommandName == "b")
            {
                Response.Redirect("Update.aspx");
            }else if (e.CommandName == "Add")
            {
                Response.Redirect("Add.aspx");
            }
        }
    }
}
           

新增視窗

  • <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Add.aspx.cs" Inherits="_21_5_20.Add" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                姓名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                <br />
                性别:<asp:RadioButton ID="RadioButton1" GroupName="1" runat="server" Text="男" /><asp:RadioButton ID="RadioButton2"  GroupName="1" runat="server" Text="女" />
                <br/>
                電話:<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
                <br />
                注冊日期:<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
                 <br />
                使用者類型:<asp:RadioButton ID="RadioButton3" GroupName="2" runat="server" Text="VIP" /><asp:RadioButton ID="RadioButton4"  GroupName="2" runat="server" Text="普通" />
                <br />
                <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="添加" />
                <br />
            </div>
        </form>
    </body>
    </html>
               
    cs裡的代碼:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace _21_5_20
    {
        public partial class Add : System.Web.UI.Page
        {
            
            UserManager manager = new UserManager();
            protected void Page_Load(object sender, EventArgs e)
            {
    
            }
    
            protected void Button1_Click(object sender, EventArgs e)
            {
     
                tb_user user = new tb_user();
                user.Name = this.TextBox1.Text;
                user.Gender = this.RadioButton1.Checked == true ? this.RadioButton1.Text : this.RadioButton2.Text;
                user.Telephone = this.TextBox2.Text;
                user.Regdate = DateTime.Parse(this.TextBox3.Text);
                user.UserType = this.RadioButton3.Checked == true ? 1 : 0;
                int count = manager.Add(user);
                if (count > 0)
                {
                   
                    Response.Redirect("delete.aspx?msg=新增成功");
                }
    
    
            }
        }
    }
               
    修改視窗和新增視窗差不多,首頁面代碼就不展示了就直接展示cs裡的
  • using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace _21_5_20
    {
        public partial class Update : System.Web.UI.Page
        {
            UserManager Manager = new UserManager();
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    tb_user user = Manager.SelectUserID(15);
    
                    this.TextBox1.Text = user.Name;
                    this.TextBox2.Text = user.Telephone;
                    this.TextBox3.Text = user.Regdate.ToString();
                    if (user.Gender == "男")
                    {
                        this.RadioButton1.Checked = true;
                    }
                    else
                    {
                        this.RadioButton2.Checked = true;
                    }
                    if (user.UserType == 1)
                    {
                        this.RadioButton3.Checked = true;
                    }
                    else
                    {
                        this.RadioButton4.Checked = true;
                    }
                }
            }
    
         
    
            protected void Button1_Click1(object sender, EventArgs e)
            {
                tb_user user = Manager.SelectUserID(15);
                user.Name = this.TextBox1.Text;
                user.Gender = this.RadioButton1.Checked == true ? this.RadioButton1.Text : this.RadioButton2.Text;
                user.Telephone = this.TextBox2.Text;
                user.Regdate = DateTime.Parse(this.TextBox3.Text);
                user.UserType = this.RadioButton3.Checked == true ? 1 : 0;
                int count = Manager.Update(user);
                if (count > 0)
                {
                    Response.Redirect("delete.aspx?msg=更新成功");
                }
            }
        }
    }
               
    好這就是所有的代碼以及流程,本人隻是菜鳥,如有大神看到,請不要噴我,謝謝了,