ado.net 删除行并更新到数据源

ado.net remove rows and update to datasource

我使用 DataTable.Rows.Remove 删除了一些行,并使用 DataAdapter.Update 将此 table 更新为数据源,但它不起作用:

代码:

public void Delete(T[] values)
    {
        foreach (var val in values)
        {
            var row = m_Dict[val];
            m_Table.Rows.Remove(row);
            m_Elements.Remove(val);
            m_Dict.Remove(val);
        }
    }

public void Apply(SqlDataAdapter adapter)
    {
        using (new SqlCommandBuilder(adapter))
        {
            adapter.UpdateBatchSize = 5;
            adapter.Update(m_Table);
        }
    }

听起来你想要 DataRow.Delete。关键是理解ADO.NET中"row states"的概念。 DataRow.Delete 会将行状态设置为已删除。

相关信息:https://msdn.microsoft.com/en-us/library/03c7a3zb(v=vs.110).aspx