从网格视图中删除最后一项- >Linq,SQL
本文关键字:一项 Linq SQL 视图 网格 删除 最后 | 更新日期: 2023-09-27 18:17:59
我有以下表格:
ID(PK) int auto_inc
消息varchar (100)
我想删除表中最后添加的项,即ID最高的项。
到目前为止我有以下内容:
protected void Button1_Click(object sender, EventArgs e)
{
DemoDataDataContext db = new DemoDataDataContext();
//locate the record with the highest ID
var deleteQuery =
(from d in db.Messages
select d).Max();
//remove it from the database
}
我可以找到最高的ID,但不确定的语法,当涉及到删除该记录…
示例:
protected void Button1_Click(object sender, EventArgs e)
{
DemoDataDataContext db = new DemoDataDataContext();
//locate the record with the highest ID
var deleteQuery =
(from d in db.Messages
order by d.ID
select d).LastOrDefault();
//remove it from the database
db.Messages.DeleteOnSubmit(deleteQuery);
db.SubmitChanges();
}
使用LastOrDefault()
,并将从数据库中删除最后一项。
尝试使用LastOrDefault();而不是Max在你的linq语句中得到最后的记录…或者在你的查询做一个下降排序对你的主id和选择top(1)..
如果DemoDataDataContext为您提供了DeleteAllOnSubmit方法(我现在不接近智能感知),您可以使用:
db.Messages.DeleteOnSubmit(deleteQuery).submitChanges();
将上下文括起来。使用"删除"。叫SaveChanges。
public void DeleteLastMessage()
{
using (var db = new DemoDataDataContext())
{
var lastMessage = (from m in db.Messages
orderby m.ID
select m)
.LastOrDefault();
db.Messages.Remove(lastMessage);
db.SaveChanges();
}
}