Aracılığıyla paylaş


DataTable'da Verileri Görüntüleme

DataTable içeriğine, DataTable nesnesinin Rows ve Columns koleksiyonlarını kullanarak erişebilirsiniz. Arama ölçütleri, sıralama düzeni ve satır durumu gibi ölçütlere göre verilerin Select alt kümelerini döndürmek için yöntemini de kullanabilirsinizDataTable. Ayrıca, birincil anahtar değeri kullanarak belirli bir satırı ararken Find metodunu DataRowCollection üzerinde kullanabilirsiniz.

Select nesnesinin DataTable yöntemi, belirtilen ölçütlere uyan bir nesne kümesi DataRow döndürür. Select filtre ifadesinin, sıralama ifadesinin ve DataViewRowState'in isteğe bağlı bağımsız değişkenlerini alır. Filtre ifadesi, DataColumn gibi değerlere göre döndürülecek LastName = 'Smith' satırları belirler. 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 Expression sınıfındaki DataColumn özelliğine bakın.

Tavsiye

Select yöntemine bir dizi çağrı gerçekleştiriyorsanız, önce DataView için bir oluşturarak performansı artırabilirsiniz. DataView tablonun satırlarını dizinlemek için oluşturur. Select yöntemi daha sonra bu dizini kullanarak sorgu sonucunu oluşturma süresini önemli ölçüde azaltır. DataView için bir oluşturma hakkında bilgi için bkz. DataViews.

Yöntem, Select metoduna göre 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.
Silinmiş Silinen satır.
ModifiedCurrent Özgün verilerin değiştirilmiş bir sürümü olan geçerli sürüm. (Bakınız ModifiedOriginal.)
DeğiştirilmişÖzgün Değiştirilen tüm satırların özgün sürümü. Geçerli sürüm ModifiedCurrent kullanılarak kullanılabilir.
Eklendi Yeni bir satır.
Hiçbiri Yok.
OriginalRows Değişmemiş ve silinmiş satırlar da dahil olmak üzere özgün satırlar.
Değişmedi 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, RowState veya farklı 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 dizi döndürür ve sütunun 5'ten büyük olduğu DataRowCustLName tarafından sıralanmış tüm satırlara başvuran başka bir CustID dizi döndürür. Satırdaki Deleted 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 bakınız