Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从DataTable中按条件删除行_C#_.net_Datatable - Fatal编程技术网

C# 从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

我在项目中创建了DataTable。用数据库中的表填充它

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?