Bagikan melalui


Menemukan Baris

Anda dapat mencari baris sesuai dengan nilai kunci pengurutannya dengan menggunakan Find metode dan FindRows dari DataView. Sensitivitas kasus dari nilai pencarian dalam metode Find dan FindRows ditentukan oleh properti CaseSensitive dari DataTable yang mendasari. Nilai pencarian harus cocok dengan nilai kunci pengurutan yang ada secara keseluruhan untuk mengembalikan hasil.

Metode Find mengembalikan bilangan bulat dengan indeks DataRowView yang cocok dengan kriteria pencarian. Jika lebih dari satu baris cocok dengan kriteria pencarian, hanya indeks pencocokan DataRowView pertama yang dikembalikan. Jika tidak ada kecocokan yang ditemukan, Find mengembalikan -1.

Untuk mengembalikan hasil pencarian yang cocok dengan beberapa baris, gunakan metode . FindRows berfungsi sama seperti Find metode , kecuali bahwa ia mengembalikan DataRowView array yang mereferensikan semua baris yang cocok di DataView. Jika tidak ada kecocokan DataRowView yang ditemukan, array akan kosong.

Untuk menggunakan Find metode atau FindRows , Anda harus menentukan urutan pengurutan baik dengan mengatur ApplyDefaultSort ke true atau dengan menggunakan Sort properti . Jika tidak ada urutan pengurutan yang ditentukan, pengecualian akan dilemparkan.

Metode Find dan FindRows mengambil array nilai sebagai input yang panjangnya cocok dengan jumlah kolom dalam urutan pengurutan. Dalam kasus pengurutan pada satu kolom, Anda bisa meneruskan satu nilai. Untuk urutan pengurutan yang berisi beberapa kolom, Anda dapat memberikan array objek. Perhatikan bahwa untuk pengurutan pada beberapa kolom, nilai dalam array objek harus cocok dengan urutan kolom yang ditentukan dalam Sort properti DataView.

Contoh kode berikut menunjukkan metode yang Find dipanggil terhadap DataView dengan urutan pengurutan kolom tunggal.

Dim custView As DataView = _
  New DataView(custDS.Tables("Customers"), "", _
  "CompanyName", DataViewRowState.CurrentRows)

Dim rowIndex As Integer = custView.Find("The Cracker Box")

If rowIndex = -1 Then
  Console.WriteLine("No match found.")
Else
  Console.WriteLine("{0}, {1}", _
    custView(rowIndex)("CustomerID").ToString(), _
    custView(rowIndex)("CompanyName").ToString())
End If
DataView custView = new DataView(custDS.Tables["Customers"], "",
  "CompanyName", DataViewRowState.CurrentRows);

int rowIndex = custView.Find("The Cracker Box");

if (rowIndex == -1)
  Console.WriteLine("No match found.");
else
  Console.WriteLine("{0}, {1}",
    custView[rowIndex]["CustomerID"].ToString(),
    custView[rowIndex]["CompanyName"].ToString());

Jika properti Anda Sort menentukan beberapa kolom, Anda harus meneruskan array objek dengan nilai pencarian untuk setiap kolom dalam urutan yang ditentukan oleh Sort properti, seperti dalam contoh kode berikut.

Dim custView As DataView = _
  New DataView(custDS.Tables("Customers"), "", _
  "CompanyName, ContactName", _
  DataViewRowState.CurrentRows)

Dim foundRows() As DataRowView = _
  custView.FindRows(New object() {"The Cracker Box", "Liu Wong"})

If foundRows.Length = 0 Then
  Console.WriteLine("No match found.")
Else
  Dim myDRV As DataRowView
  For Each myDRV In foundRows
    Console.WriteLine("{0}, {1}", _
      myDRV("CompanyName").ToString(), myDRV("ContactName").ToString())
  Next
End If
DataView custView = new DataView(custDS.Tables["Customers"], "",
  "CompanyName, ContactName",
  DataViewRowState.CurrentRows);

DataRowView[] foundRows =
  custView.FindRows(new object[] {"The Cracker Box", "Liu Wong"});

if (foundRows.Length == 0)
  Console.WriteLine("No match found.");
else
  foreach (DataRowView myDRV in foundRows)
    Console.WriteLine("{0}, {1}", myDRV["CompanyName"].ToString(),
      myDRV["ContactName"].ToString());

Lihat juga