Share via


Menemukan Baris

Anda dapat menelusuri baris berdasarkan nilai kunci pengurutannya dengan menggunakan metode Find dan FindRows dari DataView. Sensitivitas huruf besar/kecil dari nilai penelusuran dalam metode Find dan FindRows ditentukan oleh properti CaseSensitive dari DataTable yang mendasarinya. Nilai pencarian harus cocok dengan nilai kunci sortir yang ada secara keseluruhan untuk mengembalikan hasil.

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

Untuk mengembalikan hasil penelusuran yang cocok dengan beberapa baris, gunakan metode FindRows. FindRows berfungsi seperti metode Find, kecuali metode ini mengembalikan larik DataRowView yang mereferensikan semua baris yang cocok di DataView. Jika tidak ditemukan adanya kecocokan, larik DataRowView akan kosong.

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

Metode Find dan FindRows mengambil larik nilai sebagai masukan yang panjangnya cocok dengan jumlah kolom dalam urutan pengurutan. Dalam kasus pengurutan pada satu kolom, Anda dapat memberikan satu nilai. Untuk urutan pengurutan yang berisi beberapa kolom, Anda melewatkan larik objek. Perhatikan bahwa untuk pengurutan pada beberapa kolom, nilai dalam larik objek harus sesuai dengan urutan kolom yang ditentukan dalam properti SortDataView.

Contoh kode berikut menunjukkan metode Find yang 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 Sort Anda menetapkan beberapa kolom, Anda harus meneruskan larik objek dengan nilai penelusuran untuk setiap kolom dalam urutan yang ditentukan oleh properti Sort, 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