Aracılığıyla paylaş


Satırları Bulma

ve FindRows yöntemlerini DataViewkullanarak satırları sıralama anahtarı değerlerine Find göre arayabilirsiniz. Find ve FindRows yöntemlerindeki arama değerlerinin büyük/küçük harf duyarlılığı, temel alınan DataTableöğesinin CaseSensitive ö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 dizinine DataRowView sahip bir tamsayı döndürür. Arama ölçütleri ile birden fazla satır eşleşiyorsa, yalnızca eşleşen ilk DataRowView dizini döndürülür. Eşleşme bulunmazsa, Bul işlevi -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. FindRows, Find yöntemi gibi çalışır ancak DataView'daki tüm eşleşen satırlara başvuran bir DataRowView dizisi döndürür. Eşleşme bulunmazsa DataRowView dizisi boş olur.

Find veya FindRows yöntemlerini kullanmak için ApplyDefaultSortdeğerini true olarak ayarlayarak veya Sort özelliğini kullanarak bir sıralama düzeni belirtmeniz gerekir. Sıralama düzeni belirtilmezse, bir özel durum oluşturulur.

Find ve FindRows yöntemleri, uzunluğu sıralama düzenindeki sütun sayısıyla eşleşen bir değer dizisini giriş olarak 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 geçirirsiniz. Birden çok sütuna göre sıralama için nesne dizisindeki değerlerin DataView'un 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ütunlu sıralama düzenine sahip bir DataView'da çağrılan Find yöntemini 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());  

Sort özelliğiniz birden çok sütun belirtiyorsa, aşağıdaki kod örneğinde olduğu gibi, sıralama özelliği tarafından belirtilen sırayla her sütun için arama değerlerini içeren 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 bkz.