public class BaseInfo<T> where T:class
{
protected OfficeManageDataContext officeManage;
public BaseInfo()
{
officeManage = new OfficeManageDataContext();
} public void Update(System.Linq.Expressions.Expression<Func<T, bool>> whichID, T obj)
{
//此处要求不能改变obj的ID,因为数据库中有些表的ID是自动生成的,这个ID不能变的
//也就是说不能采用如下的方法: 先将原数据取出,再把原数据删除,再插入新数据
} /// <summary>
/// 查找出想要的数据
/// </summary>
/// <param name="s">查找条件表达式</param>
/// <returns>返回一条实体类</returns>
public List<T> Select(System.Linq.Expressions.Expression<Func<T, bool>> expression)
{
return officeManage.GetTable<T>().Where<T>(expression).ToList();
} /// <summary>
/// 向数据库插入一条数据
/// </summary>
/// <param name="obj">要插入的数据</param>
public void Insert(T obj)
{
officeManage.GetTable<T>().InsertOnSubmit(obj);
officeManage.SubmitChanges();
} /// <summary>
/// 删除符合条件的数据
/// </summary>
/// <param name="expression">删除条件</param>
public void Delete(System.Linq.Expressions.Expression<Func<T, bool>> expression)
{
officeManage.GetTable<T>().DeleteAllOnSubmit<T>(Select(expression));
}
}
解决方案 »
- 解决完回家过年- -
- 【求助】ASPxGridView自定义列操作
- 关于ASP.NET对CSS的影响的问题
- sendusing 配置无效
- 大家来交流以下.从Windwos转过来的.最近开始学ASP.net.发现做ASP.net精力全都花在界面上了.似乎学界面设计比写程序重要,逻辑代码没写多少
- 请问如何获得DropListDown控件的已选中项的DataTextField值啊
- 不好意思!就剩这点分了。求教一个SQL查询的问题!
- 一个关于投票的问题求解。
- 请问批量更新为何没有执行?
- gridview可以实现这样的效果吗?涉及单元格双击时赋值的问题。
- VS2008怎样建立虚拟目录?
- 来者有分,关于ASP.NET判断网络连接是否正常
dbContext SubmitChanges()
参考
private void bindgrid()
{
linqDataContext test = new linqDataContext();
//GridView1.DataSource = from p in test.Customer select p;//和下面的句子作用一样,查询全部记录
GridView1.DataSource = test.Customer; //查询包含某个字段的记录
//1、查找包含程的数据 startwith是查某个字段开头的数据
//var newcoust = from p in test.Customer where p.FirstName.Contains("飞") select p;
//2、这个是第二种查找方式
//var newcoust = from p in test.Customer.Where(a=>a.FirstName.Contains("程")) select p; //3、准确查找 也是比较常用的查找 note:是==而不是=
//var newcoust = from p in test.Customer where p.FirstName == "程飞" select p;
//GridView1.DataSource = newcoust; GridView1.DataBind();
}
//添加一条记录
protected void Button1_Click(object sender, EventArgs e)
{
linqDataContext linq = new linqDataContext();
var addlinq = new Customer
{
FirstName=TextBox1.Text,
LastName=TextBox2.Text
};
linq.Customer.InsertOnSubmit(addlinq);
linq.SubmitChanges();
bindgrid();
}
//删除一条记录
protected void Button2_Click(object sender, EventArgs e)
{
linqDataContext abc = new linqDataContext();
var b = abc.Customer.First(c=>c.CustomerID==8);
abc.Customer.DeleteOnSubmit(b);
abc.SubmitChanges();
bindgrid();
}
//更改一条记录
protected void bchange_Click(object sender, EventArgs e)
{
linqDataContext abc = new linqDataContext();
var b = abc.Customer.First(c => c.CustomerID == 1);
b.FirstName = "chengfei";
abc.SubmitChanges();
bindgrid();
}
//同时修改多项
protected void Button3_Click(object sender, EventArgs e)
{
linqDataContext abc = new linqDataContext();
var b = abc.Customer;
foreach (var ob in b)
{
ob.FirstName = ob.FirstName + "程飞_";
}
abc.SubmitChanges();
bindgrid();
}
//删除指定多项,这个比ado.net高级
protected void Button4_Click(object sender, EventArgs e)
{
linqDataContext fei = new linqDataContext();
var a = from p in fei.Customer.Where(c => c.FirstName.Contains("c")) select p;
foreach (var ob in a)
{
fei.Customer.DeleteOnSubmit(ob);
}
fei.SubmitChanges();
bindgrid();
}
我自己学习时候写的,都是能够执行的
pd[0].CategoryID = 2; //这里修改
db.SubmitChanges();
找出符合条件的数据,然后删除这些数据,最后把T obj插入.
是这样吗?