Aracılığıyla paylaş


DataTable’daki Verileri Görüntüleme

DataTable'ın Satırlar ve Sütunlar koleksiyonlarını kullanarak öğesinin DataTable içeriğine erişebilirsiniz. Bir DataTable'daki verilerin alt kümelerini arama ölçütleri, sıralama düzeni ve satır durumu gibi ölçütlere göre döndürmek için yöntemini de kullanabilirsinizSelect. Ayrıca, birincil anahtar değeri kullanarak belirli bir satırı ararken DataRowCollection yöntemini kullanabilirsinizFind.

DataTable nesnesinin Select yöntemi, belirtilen ölçütlere uyan bir nesne kümesi DataRow döndürür. Select bir filtre ifadesinin, sıralama ifadesinin ve DataViewRowState'in isteğe bağlı bağımsız değişkenlerini alır. Filtre ifadesi, gibi LastName = 'Smith'DataColumn değerlerine göre döndürülecek satırları tanımlar. Sıralama ifadesi, sütunları sıralamak için standart SQL kurallarına uyar, örneğin LastName ASC, FirstName ASC. İfade yazmayla ilgili kurallar için DataColumn sınıfının özelliğine bakınExpression.

İpucu

Bir DataTable'ın Select yöntemine bir dizi çağrı yapıyorsanız, önce DataTable için bir DataView oluşturarak performansı artırabilirsiniz. DataView oluşturulurken tablonun satırları dizinlenir. Select yöntemi daha sonra bu dizini kullanır ve sorgu sonucunu oluşturma süresini önemli ölçüde azaltır. DataTable için DataView oluşturma hakkında bilgi için bkz. DataViews.

Select yöntemi, bir DataViewRowStatetemelinde satırların hangi sürümünün görüntüleneceğini veya işleneceğini belirler. Aşağıdaki tabloda olası DataViewRowState numaralandırma değerleri açıklanmaktadır.

DataViewRowState değeri Açıklama
CurrentRows Değişmemiş, eklenmiş ve değiştirilmiş satırlar da dahil olmak üzere geçerli satırlar.
Silindi Silinen satır.
ModifiedCurrent Özgün verilerin değiştirilmiş bir sürümü olan geçerli sürüm. (Bkz. ModifiedOriginal.)
Modifiedoriginal Değiştirilen tüm satırların özgün sürümü. Geçerli sürüm ModifiedCurrent kullanılarak kullanılabilir.
Eklen -di Yeni bir satır.
Hiçbiri Hiçbiri.
OriginalRows Değişmemiş ve silinmiş satırlar da dahil olmak üzere özgün satırlar.
Değişme -den Değişmemiş bir satır.

Aşağıdaki örnekte DataSet nesnesi, yalnızca DataViewRowState değeri CurrentRows olarak ayarlanmış satırlarla çalışacak şekilde filtrelenmiştir.

Dim column As DataColumn
Dim row As DataRow

Dim currentRows() As DataRow = _
    workTable.Select(Nothing, Nothing, DataViewRowState.CurrentRows)

If (currentRows.Length < 1 ) Then
  Console.WriteLine("No Current Rows Found")
Else
  For Each column in workTable.Columns
    Console.Write(vbTab & column.ColumnName)
  Next

  Console.WriteLine(vbTab & "RowState")

  For Each row In currentRows
    For Each column In workTable.Columns
      Console.Write(vbTab & row(column).ToString())
    Next

    Dim rowState As String = _
        System.Enum.GetName(row.RowState.GetType(), row.RowState)
    Console.WriteLine(vbTab & rowState)
  Next
End If
DataRow[] currentRows = workTable.Select(
    null, null, DataViewRowState.CurrentRows);

if (currentRows.Length < 1 )
  Console.WriteLine("No Current Rows Found");
else
{
  foreach (DataColumn column in workTable.Columns)
    Console.Write("\t{0}", column.ColumnName);

  Console.WriteLine("\tRowState");

  foreach (DataRow row in currentRows)
  {
    foreach (DataColumn column in workTable.Columns)
      Console.Write("\t{0}", row[column]);

    Console.WriteLine("\t" + row.RowState);
  }
}

Select yöntemi, farklı RowState değerlerine veya alan değerlerine sahip satırları döndürmek için kullanılabilir. Aşağıdaki örnek, silinmiş olan tüm satırlara başvuran bir DataRow dizisi döndürür ve CustID sütununun 5'ten büyük olduğu CustLName tarafından sıralanmış tüm satırlara başvuran başka bir DataRow dizisi döndürür. Silinmiş satırındaki bilgileri görüntüleme hakkında bilgi için bkz. Satır Durumları ve Satır Sürümleri.

' Retrieve all deleted rows.
Dim deletedRows() As DataRow = workTable.Select(Nothing, Nothing, DataViewRowState.Deleted)

' Retrieve rows where CustID > 5, and order by CustLName.
Dim custRows() As DataRow = workTable.Select( _
    "CustID > 5", "CustLName ASC")
// Retrieve all deleted rows.
DataRow[] deletedRows = workTable.Select(
    null, null, DataViewRowState.Deleted);

// Retrieve rows where CustID > 5, and order by CustLName.
DataRow[] custRows = workTable.Select("CustID > 5", "CustLName ASC");

Ayrıca bkz.