从数据集中删除行

Nih*_*ilo 3 vb.net oledb datagridview dataset

我想将一个 excel 数据表复制到我的表中,datagridview但我想从我的表所在的特定行(第 9 行)开始(在此之前有标题、评论等,它们不是表的一部分。)我我正在使用以下代码,但它不会从dataset.

    MyConnection = New System.Data.OleDb.OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;")
    MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection)

    DtSet = New System.Data.DataSet
    MyCommand.Fill(DtSet)
    DtSet.Tables(0).Rows(3).Delete()
    DtSet.Tables(0).Rows(3).AcceptChanges()


    dataGridArray(selectedTab).DataSource = DtSet.Tables(0)

    'MsgBox("number of Row(s)   -   " & DtSet.Tables(0).Rows.Count)

    MyConnection.Close()
Run Code Online (Sandbox Code Playgroud)

delete()acceptChanges,我仍然可以看到标题。

有谁可以看到我错在哪里?谢谢你。

Tim*_*ter 5

您不想删除该行(在 excel 中),但您想其从表中删除

所以而不是:

DtSet.Tables(0).Rows(3).Delete()
Run Code Online (Sandbox Code Playgroud)

用:

DtSet.Tables(0).Rows.RemoveAt(3)
Run Code Online (Sandbox Code Playgroud)

但是由于您不想按照代码的建议删除一行,而是要删除第 9 行之前的所有行,请使用:

For i As Int32 = 1 To 8
    DtSet.Tables(0).Rows.RemoveAt(0)
Next
Run Code Online (Sandbox Code Playgroud)