8,494
社区成员




现在有一个DataTable是我读取导入数据生成的
DataTable的结构
id name grade
1 as 22
2 de 42
3 rr 33
如何实现吧这个DataTable里的grade字段批量更新到数据库
有个问题是必须根据两个条件确定才更新数据
如果用sql表达就是
UPDATE ExamGrade SET grade='22' WHERE id='1' AND name='as'
ExamGradeDataContext examGradeSmallLinq = new ExamGradeDataContext();
var customers = examGradeSmallLinq.ExamGrade .Where(c => c.id==14);
foreach (var customer in customers)
{
//要更新的值
customer.grade= 22;
}
examGradeSmallLinq.SubmitChanges();
//这样写问题是只更新的where条件如何实现动态改变的
ExamGradeDataContext examGradeSmallLinq = new ExamGradeDataContext()
foreach (DataRow dr in gradeDt.Rows)
{
var grades = examGradeSmallLinq.EXAM_GRADE_SMALLL.Where(c => c.id == dr["id"] && c.name == dr["name"] );
foreach (var grade in grades)
{
//要更新的值
grade.grademark = dr["grade"];
}
}
examGradeSmallLinq.SubmitChanges();
//我自己整了个请问下这个和你整的应该是一个意思吧
//还有这个更新过程是不是先查询在更新的,我发觉更新数据行数大了就很慢
//有优化的方案么
void Main()
{
DataTable dt=new DataTable();
dt.Columns.Add("id");
dt.Columns.Add("name");
dt.Columns.Add("grade");
dt.Rows.Add("1","as","22");
dt.Rows.Add("2","de","42");
dt.Rows.Add("3","rr","33");
var query=from t in dt.AsEnumerable()
select new
{
id=t.Field<string>("id"),
name=t.Field<string>("name"),
grade=t.Field<string>("grade"),
};
ExamGradeDataContext examGradeSmallLinq = new ExamGradeDataContext();
foreach( var m in query)
{
var customers = examGradeSmallLinq.ExamGrade .Where(c => c.id==m.id );
foreach (var customer in customers)
{
//要更新的值
customer.grade=m.grade;
}
examGradeSmallLinq.SubmitChanges();
}
}