Aracılığıyla paylaş


Satırları Bulma

Find'nin FindRows ve DataView yöntemlerini kullanarak, satırları sıralama anahtarı değerlerine göre arayabilirsiniz. Find ve FindRows yöntemlerindeki arama değerlerinin büyük/küçük harf duyarlılığı, temel alınan CaseSensitive öğesinin DataTable özelliği tarafından belirlenir. Sonuç döndürmek için arama değerlerinin var olan sıralama anahtarı değerleriyle tamamen eşleşmesi gerekir.

Find yöntemi, arama ölçütleriyle eşleşen DataRowView dizininin indeksini tamsayı olarak döndürür. Arama ölçütleri ile birden fazla satır eşleşiyorsa, yalnızca ilk eşleşmenin DataRowView dizini döndürülür. Eşleşme bulunmazsa Find -1 döndürür.

Birden çok satırla eşleşen arama sonuçlarını döndürmek için FindRows yöntemini kullanın. FindRowsyöntemi gibi Find çalışır, ancak DataRowView tüm eşleşen satırlara başvuran bir dizi döndürür. Eşleşme bulunmazsa, DataRowView dizi boş olur.

Find veya FindRows yöntemlerini kullanmak için, ApplyDefaultSort'yi true olarak ayarlayarak veya Sort özelliğini kullanarak bir sıralama düzeni belirtmeniz gerekir. Sıralama düzeni belirtilmezse, bir istisna fırlatılır.

Find ve FindRows yöntemleri, uzunluğu sıralama düzenindeki sütun sayısıyla eşleşen giriş olarak bir değer dizisi alır. Tek bir sütunda sıralama söz konusu olduğunda, tek bir değer geçirebilirsiniz. Birden çok sütun içeren sıralama düzenleri için bir nesne dizisi gönderirsiniz. Birden çok sütuna göre sıralama için nesne dizisindeki değerlerin Sort özelliğinde belirtilen sütunların sırasıyla eşleşmesi gerektiğini unutmayın.

Aşağıdaki kod örneği, tek sütun sıralama düzenine sahip bir DataView üzerinde Find yönteminin çağrıldığını gösterir.

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());

Özelliğiniz Sort birden çok sütun belirtiyorsa, aşağıdaki kod örneğinde olduğu gibi, her sütun için arama değerlerini özelliği tarafından Sort belirtilen sırada bir nesne dizisi geçirmeniz gerekir.

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());

Ayrıca bakınız