0

Linq を使用して行を検索し、dataSet から行を削除して、MySql データベースの DataRow を削除したいと考えています。しかし、データベースの行を削除してもうまくいきません。私のコード:

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 から行を削除しても、後でデータベースから削除されるわけではありません。

DeleteDataAdapter/TableAdapter でそれらを削除する場合は、DataRowを呼び出す必要があります。次に、それらは でマークされ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 に答える