0

我想在 MySql 数据库中删除一个 DataRow,使用 Linq 搜索行,然后从数据集中删除该行。但是删除我的数据库中的行是行不通的。我的代码:

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);

我究竟做错了什么?

4

1 回答 1

3

从 DataTable 中删除行并不意味着它们稍后会从数据库中删除。

如果您希望使用 DataAdapter/TableAdapter 删除它们,则需要调用DeleteDataRow。然后它们将被标记为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);
于 2012-05-30T14:00:36.433 回答