C# 从DataTable中按条件删除行
我在项目中创建了DataTable。用数据库中的表填充它C# 从DataTable中按条件删除行,c#,.net,datatable,C#,.net,Datatable,我在项目中创建了DataTable。用数据库中的表填充它 Dim myDataTable As New DataTable(Table_Name) Dim myLocalConnection As New SqlConnection(_ConnectionString) myLocalConnection.Open() Dim mySqlDataAdapter As New SqlDataAdapter() myCommand.Connection = myLocalConnection m
Dim myDataTable As New DataTable(Table_Name)
Dim myLocalConnection As New SqlConnection(_ConnectionString)
myLocalConnection.Open()
Dim mySqlDataAdapter As New SqlDataAdapter()
myCommand.Connection = myLocalConnection
mySqlDataAdapter.SelectCommand = myCommand
mySqlDataAdapter.Fill(myDataTable)
现在我想从tableby条件中删除一个特定的行。
并更新数据库上的表。使用SqlDataAdapter.Update()
方法
mySqlDataAdapter.Update(myDataTable)
我怎么能这样做?帮助…使用类似
foreach (DataRow row in myDataTable.Rows)
if (row ...) // implement your condition here
myDataTable.Rows.Remove(row);
在这里输入C#代码是因为您要求在标题中输入C。您必须提供
数据适配器的删除命令。然后,您可以使用DataRow.Delete
将其行状态更改为RowState.Deleted
,这会导致dataadapter在使用dataadapter.Update(myDataTable)
时将其从数据库中删除
要查找要删除的行,可以使用Linq To DataSet
:
Dim deleteCommand = new SqlCommand("DELETE FROM ...", myLocalConnection)
mySqlDataAdapter.DeleteCommand = deleteCommand
Dim query = From row In myDataTable
Where row.Field(Of String)("ColumnName") = "Delete-Condition"
For Each row As DataRow in query
row.Delete()
Next
mySqlDataAdapter.Update(myDataTable)
论坛上有一个类似的问题[问题][1][1]:为什么现在只有C#的可能重复,即使你显示VB.NET?