LINQ删除数据库数据
LINQ to SQL从数据库中删除数据的功能由Table<T>类的DeleteAllOnSubmit<TSubEntity>()和DeleteOnSubmit()方法实现。其中,DeleteOnSubmit()方法从Table<T>类的实例中删除单个实体,DeleteAllOnSubmit<TSubEntity>()方法将从Table<T>类的实例中删除实体的集合。它们的原型如下。
public void DeleteOnSubmit(TEntity entity) public void DeleteAllOnSubmit<TSubEntity>(IEnumerable<TSubEntity> entities) where TSubEntity :
其中,entity参数表示单个实体,entities参数表示实体的集合。
从数据库中删除数据的功能由Sample_08应用程序中的DeleteData.aspx页面实现,它的代码隐藏文件为DeleteData.aspx.cs。
1.创建DeleteData.aspx页面
在DeleteData.aspx页面上创建一个GridView控件和一个Button控件,它们的ID属性的值分别为gvData和btnDelete。DeleteData.aspx页面的HTML设计代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DeleteData.aspx.cs" Inherits="DeleteData" %> <head runat="server"><title>删除数据库中的数据</title></head> <asp:GridView ID="gvData" runat="server"></asp:GridView> <asp:Button ID="btnDelete" runat="server" Text="删除ID值大于4的角色" onclick="btnDelete_Click" />
2.DeleteData.aspx页面初始化
DeleteData.aspx页面初始化功能由其Page_Load(object sender, EventArgs e)事件实现。该事件调用ShowData()函数使用LINQ语句查询Role表中的记录,并显示在gvData控件中。其中,查询数据的LINQ查询表达式为“from r in db.Role select r”。Page_Load(object sender, EventArgs e)事件和ShowData()函数的程序代码如下:
using System.Data.Linq; using System.Collections.Generic; protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack){ShowData();} } private void ShowData() { ///创建LinqDB数据库的数据上下文的实例 LinqDBDataContext db = new LinqDBDataContext(LinqSystem.LinqDBConnectionString); ///获取所有角色 var result = from r in db.Role select r; ///绑定控件数据,并显示数据 gvData.DataSource = result; gvData.DataBind(); }
3.删除数据
删除数据的功能由DeleteData.aspx页面中的【删除ID值大于4的角色】按钮(btnDelete控件)实现,该按钮触发其Click事件btnDelete_Click(object sender,EventArgs e)。该事件调用DeleteDataWithLINQ()函数实现从数据库中删除数据的功能,具体步骤如下。
(1)创建LinqDBDataContext类的实例db。
(2)使用LINQ查询ID列的值大于4的记录,查询结果保存在result变量中。
(3)调用DeleteAllOnSubmit()方法删除result变量中的所有记录。
(4)调用SubmitChanges()方法将上述修改提交到数据库,并实现修改数据的功能。
btnDelete_Click(object sender,EventArgs e)事件和DeleteDataWithLINQ()函数的程序代码如下:
private void DeleteDataWithLINQ() { ///创建LinqDB数据库的数据上下文的实例 LinqDBDataContext db = new LinqDBDataContext(LinqSystem.LinqDBConnectionString); ///查询被删除的数据 var result = from r in db.Role where r.ID > 4 select r; ///删除数据,并提交到数据库中 db.Role.DeleteAllOnSubmit(result); db.SubmitChanges(); } protected void btnDelete_Click(object sender,EventArgs e) { DeleteDataWithLINQ();ShowData(); }
把DeleteData.aspx页面设置为Sample_08应用程序的起始页面,并运行Sample_08应用程序。DeleteData.aspx页面的初始化界面如图所示,此时,该页面显示Role表中的记录。单击【删除ID值大于4的角色】按钮,DeleteData.aspx页面将从Role表删除ID值大于4的记录,并显示删除操作之后的Role表中的记录,如图所示。
来源:http://blog.csdn.net/linqmail/article/details/2321728
加支付宝好友偷能量挖...