日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用EF书写增删改查

發布時間:2023/12/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用EF书写增删改查 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

EF增刪改查

用EF實現的增刪改查,首先是數據庫連接首頁效果圖(以學生列表為例)

?查詢:用Repeater創建數據源(圖)

HTML的前端頁面代碼

<div><table style="width: 800px; margin: auto;"><tr><td>學生列表</td></tr><tr style="background-color: darkturquoise;"><td>編號</td><td>姓名</td><td>年齡</td><td>手機</td><td>郵箱</td><td>班級</td><td style="width:100px;">操作</td></tr><asp:Repeater ID="repert_EFDemo" runat="server" OnItemCommand="repert_EFDemo_ItemCommand"><ItemTemplate><tr><td><%# Eval("stuid")%></td><td><%# Eval("stuname")%></td><td><%# Eval("stuage")%></td><td><%# Eval("phone")%></td><td><%# Eval("email")%></td><td><%# Eval("classname")%></td><td><a href='Update.aspx?id=<%# Eval("stuid") %>'>修改</a><a href="javascript:;" onclick='delStudent(<%# Eval("stuid") %>)'>刪除</a><asp:LinkButton ID="link_denete" runat="server" CommandName="del" CommandArgument='<%# Eval("stuid")%>' OnClientClick="return confirm('你確定要刪除嗎?')">刪除</asp:LinkButton></td></tr></ItemTemplate></asp:Repeater><tr><td><asp:Button ID="bnt_add" runat="server" Width="100px" Height="30px" Text="添加" BackColor="#00CC00" OnClick="bnt_add_Click" /></td></tr></table></div>

查詢與repeat的修改刪除的后臺代碼:

public partial class Index : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){BindStudnet();}}/// <summary>/// EF綁定數據源/// </summary>private void BindStudnet(){//StudentModel類,新建的數據庫的類using (EFDemoUserListEntities db = new EFDemoUserListEntities()){//實例化數據庫訪問上下文List<Student> list = db.Student.Where(s => true).ToList();List<StudentModel> listmodel = new List<StudentModel>();list.ForEach(s =>{var model = new StudentModel(){//查詢實體屬性stuid = s.stuid,stuname = s.stuname,stuage = s.stuage,phone = s.phone,email = s.email,classid = Convert.ToInt32(s.classid),classname = s.Class.classname};listmodel.Add(model);});repert_EFDemo.DataSource = listmodel;repert_EFDemo.DataBind();}}//repeater刪除和修改protected void repert_EFDemo_ItemCommand(object source, RepeaterCommandEventArgs e){int id = Convert.ToInt32(e.CommandArgument);if (e.CommandName == "update"){Session["stuid"] = id;Server.Transfer("Update.aspx");}if (e.CommandName == "del"){Student stu = new Student();stu.stuid = id;EFDemoUserListEntities db = new EFDemoUserListEntities();db.Student.Attach(stu);db.Student.Remove(stu);int i = db.SaveChanges();Response.Write("<script>alert('刪除成功!')</script>");BindStudnet();}}//添加成員的跳轉protected void bnt_add_Click(object sender, EventArgs e){Response.Redirect("Add.aspx");}}

?StudentModel類:數據庫的連接

public class StudentModel{public int stuid { get; set; }public string stuname { get; set; }public int stuage { get; set; }public string phone { get; set; }public string email { get; set; }public int classid { get; set; }public string classname { get; set; }}

添加的代碼: HTML的頁面圖片與代碼(圖片)

添加的HTML前端代碼:

<div><table style="width:500px; margin:auto;"><tr><td><h3>添加新學員</h3></td></tr><tr><td>姓名</td><td><asp:TextBox ID="txt_name" runat="server"></asp:TextBox></td></tr><tr><td>年齡</td><td><asp:TextBox ID="txt_age" runat="server"></asp:TextBox></td></tr><tr><td>手機</td><td><asp:TextBox ID="txt_phone" runat="server"></asp:TextBox></td></tr><tr><td>郵箱</td><td><asp:TextBox ID="txt_email" runat="server"></asp:TextBox></td></tr><tr><td>班級</td><td><asp:DropDownList ID="dropclass" runat="server"><asp:ListItem Selected="True" Value="1">.NET班</asp:ListItem><asp:ListItem Value="2">Android班</asp:ListItem><asp:ListItem Value="3">JAVA班</asp:ListItem></asp:DropDownList></td></tr><tr><td></td><td><asp:Button ID="btn_add" runat="server" Text="添加學員" BackColor="#00CC00" OnClick="btn_add_Click" /></td></tr></table></div>

添加的后臺代碼:

//添加按鈕的代碼事件 protected void btn_add_Click(object sender, EventArgs e){//實例化數據庫訪問上下文EFDemoUserListEntities db = new EFDemoUserListEntities();Student stu = new Student(){//添加實體的屬性stuname = txt_name.Text.Trim(),stuage = Convert.ToInt32(txt_age.Text.Trim()),phone = txt_phone.Text.Trim(),email = txt_email.Text.Trim(),classid = Convert.ToInt32(dropclass.SelectedValue)};db.Student.Add(stu);//SaveChangesint i = db.SaveChanges();if (i > 0){Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "<script>alert('添加成功!');location.href='Index.aspx';</script>");}else{Response.Write("添加失敗!");}}

?修改的代碼部分:HTML頁面的圖片和代碼,圖片

修改的HTML頁面代碼:

<div><table style="width: 800px; margin: auto;"><tr><td><h3>學生列表</h3></td></tr><tr><td>姓名</td><td><asp:TextBox ID="txt_name" runat="server"></asp:TextBox></td></tr><tr><td>年齡</td><td><asp:TextBox ID="txt_age" runat="server"></asp:TextBox></td></tr><tr><td>手機</td><td><asp:TextBox ID="txt_phone" runat="server"></asp:TextBox></td></tr><tr><td>郵箱</td><td><asp:TextBox ID="txt_email" runat="server"></asp:TextBox></td></tr><tr><td>班級</td><td><asp:DropDownList ID="dropclass" runat="server"><asp:ListItem Selected="True" Value="1">.NET班</asp:ListItem><asp:ListItem Value="2">Android班</asp:ListItem><asp:ListItem Value="3">JAVA班</asp:ListItem></asp:DropDownList></td></tr><tr><td></td><td><asp:Button ID="btn_update" runat="server" Text="修改" BackColor="#00CC00" OnClick="btn_update_Click" /></td></tr></table></div>

修改的后臺代碼:

public partial class Update : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){UpdateList();}}//綁定修改的數據private void UpdateList(){int id = Convert.ToInt32(Request.QueryString["id"]);if (id == 0){Response.Redirect("Index.aspx");}//數據庫訪問上下文EFDemoUserListEntities db = new EFDemoUserListEntities();var model = db.Student.FirstOrDefault(s => s.stuid == id);if (model != null){txt_name.Text = model.stuname;txt_age.Text =model.stuage.ToString();txt_phone.Text = model.phone;txt_email.Text = model.email;dropclass.SelectedValue =model.classid.ToString();}}//修改的按鈕事件protected void btn_update_Click(object sender, EventArgs e){//定義idint id = Convert.ToInt32(Request.QueryString["id"]);//實例化數據庫訪問上下文EFDemoUserListEntities db = new EFDemoUserListEntities();//根據id查詢實體var model = db.Student.FirstOrDefault(s => s.stuid == id);if (model != null){//修改實體的屬性model.stuname = txt_name.Text.Trim();model.stuage = Convert.ToInt32(txt_age.Text.Trim());model.phone = txt_phone.Text.Trim();model.email = txt_email.Text.Trim();model.classid = Convert.ToInt32(dropclass.SelectedValue);}//SaveChangesif (db.SaveChanges() > 0){Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "<script>alert('修改成功!');location.href='Index.aspx';</script>");}else{Response.Write("修改失敗!");}}}

ajax刪除與EF刪除:ajax刪除,首先是創建一個result提示信息的類,名字可以自己定義,圖片如下:在前臺的JavaScript的代碼是:

然后就是創建一個ajax文件夾,在文件夾里面?添加一個一般處理程序,名字自擬,之后就是代碼的書寫

/// <summary>/// ajaxupdate 的摘要說明/// </summary>public class ajaxupdate : IHttpHandler{public void ProcessRequest(HttpContext context){context.Response.ContentType = "text/plain";int id = Convert.ToInt32(context.Request.Form["ID"]);EFResult result = new EFResult();JavaScriptSerializer js = new JavaScriptSerializer();//1.實例化數據庫訪問上下文EFDemoUserListEntities db = new EFDemoUserListEntities();//2.根據ID查詢實體var model = db.Student.FirstOrDefault(s => s.stuid == id);if (model == null){result.IsSuccess = false;result.ErrorMessage = "該記錄已刪除!";context.Response.Write(js.Serialize(result));}//db.Student.Remove(model);//3.給實體標記為刪除db.Entry<Student>(model).State = System.Data.Entity.EntityState.Deleted;//4.SaveChanges()if (db.SaveChanges() > 0){result.IsSuccess = true;result.ErrorMessage = "刪除成功!";context.Response.Write(js.Serialize(result));}else{result.IsSuccess = false;result.ErrorMessage = "刪除失敗";context.Response.Write(js.Serialize(result));}}public bool IsReusable{get{return false;}}}

EF的刪除:在上面的查詢中repeat的修改和刪除中出現過,

Student stu = new Student();stu.stuid = id;EFDemoUserListEntities db = new EFDemoUserListEntities();db.Student.Attach(stu);db.Student.Remove(stu);int i = db.SaveChanges();Response.Write("<script>alert('刪除成功!')</script>");BindStudnet();

EF的增刪改查就是這些。

總結

以上是生活随笔為你收集整理的用EF书写增删改查的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。