我想删除MySql数据库中的DataRow,使用Linq搜索该行,并从dataSet中删除该行。 但是删除数据库中的行是行不通的。 我的代码:
var results = (from myRow in dataSet.Tables["Students_has_Courses"].AsEnumerable()
where myRow.Field<int>("Students_idStudents") == 1 && myRow.Field<int>("Courses_idCourses") == 1
select new { id = myRow }).ToList();
foreach (var x in results)
{
dataSet.Tables["Students_has_Courses"].Rows.Remove(x.id);
x.id.Delete();
}
dataAdapter.Update(dataSet);
我做错了什么?
答案 0 :(得分:3)
Removing行意味着以后不会从数据库中删除它们。
如果您希望使用DataAdapter / TableAdapter删除它们,则需要在DataRow上调用Delete
。然后他们将标有DataRowState.Deleted
。
var results = from myRow in dataSet.Tables["Students_has_Courses"].AsEnumerable()
where myRow.Field<int>("Students_idStudents") == 1
&& myRow.Field<int>("Courses_idCourses") == 1
select myRow;
foreach (DataRow row in results)
row.Delete();
dataAdapter.Update(dataSet);