Я использую DataTable.Rows.Find
, чтобы найти определенную строку в Datatable, чтобы знать, сколько строк есть до этого (потому что мне нужно выбрать до только их):Ошибка при попытке получить «_RowId» (чтобы подобрать строки перед ним)
Using DT_DBData As DataTable = _
DB_Functions.mQueryDT("SELECT * FROM UpdTest ORDER BY Row_Num")
With DT_DBData
.PrimaryKey = {.Columns("Id")}
End With
Dim mRow As DataRow = DT_DBData.Rows.Find("6")
Но когда я пытаюсь получить _RowId
, чтобы узнать, сколько строк есть до того,
MsgBox(mRow._rowid)
Я получаю сообщение об ошибке:
Error 4 'System.Data.DataRow._rowID' is not accessible in this context because it is 'Friend'
Как я могу исправить?
Есть ли другой способ получить количество строк до найденного?
EDIT:
На данный момент я решая, используя код, приведенный ниже, чтобы забрать строки перед один нашел:
Dim NewRows() As DataRow
For x As Short = 0 To DT_DBData.Rows.Count - 1
If Not DT_DBData.Rows(x).Equals(mRow) Then
ReDim Preserve NewRows(x)
NewRows(x) = DT_DBData.Rows(x)
Else
Exit For
End If
Next
Я буду благодарен за лучшие решения
Можете ли вы объяснить, почему вам нужно знать эту информацию? Возможно, есть лучший способ: – Steve
@Steve Мне нужно знать, сколько строк есть до того, как они найдены, чтобы взять только их из DataTable. – genespos
. DataTable.Select call с надлежащим состоянием может работать. Думаю, – Steve