为什么ROWS [0]将整个表返回给DataRow?

时间:2016-03-11 12:52:57

标签: c# datatable

当我查看代码末尾附近的dr的行数时 - 它表示它是一个表并且与dt具有相同的行数!

为什么?

static public bool GetLastMTM(out DataRow dr)
{
    dr = null;

    try
    {
        string commandText = "SELECT [TIMESTAMP] FROM [" + DBName + "].[dbo].[tblMTM] ORDER BY [TIMESTAMP] DESC";

        SqlCommand cmd = new SqlCommand
        {
            Connection = conn,
            CommandText = commandText
        };

        cmd.ExecuteNonQuery();


        SqlDataAdapter da = new SqlDataAdapter(cmd);


        DataSet ds = new DataSet();
        DataTable dt = new DataTable();

        ds.Reset();

        da.Fill(ds);

        dt = ds.Tables[0];

        if (dt.Rows.Count < 1)
            return false;

        dr = dt.Rows[0];

        return true;
    }
    catch (Exception er)
    {
        return false;
    }
}
  
      
  • dr {System.Data.DataRow} System.Data.DataRow HasErrors false bool
  •   
  • ItemArray {object [1]} object [] RowError“”string RowState Unchanged System.Data.DataRowState
  •   
  • 表{Table} System.Data.DataTable
  •   
  • base {Table} System.ComponentModel.MarshalByValueComponent {System.Data.DataTable} CaseSensitive false bool
  •   
  • ChildRelations {System.Data.DataRelationCollection.DataTableRelationCollection} System.Data.DataRelationCollection   {System.Data.DataRelationCollection.DataTableRelationCollection}
  •   
  • Columns {System.Data.DataColumnCollection} System.Data.DataColumnCollection
  •   
  • 约束{System.Data.ConstraintCollection} System.Data.ConstraintCollection
  •   
  • DataSet {System.Data.DataSet} System.Data.DataSet
  •   
  • DefaultView {System.Data.DataView} System.Data.DataView DisplayExpression“”string
  •   
  • ExtendedProperties Count = 0 System.Data.PropertyCollection HasErrors false bool IsInitialized true bool
  •   
  • Locale {zh-CN} System.Globalization.CultureInfo MinimumCapacity 50 int Namespace“”string
  •   
  • ParentRelations {System.Data.DataRelationCollection.DataTableRelationCollection} System.Data.DataRelationCollection   {} System.Data.DataRelationCollection.DataTableRelationCollection     前缀“”字符串     PrimaryKey {System.Data.DataColumn [0]} System.Data.DataColumn []     RemotingFormat Xml System.Data.SerializationFormat
  •   
  • Rows {System.Data.DataRowCollection} System.Data.DataRowCollection
  •   
  • base {System.Data.DataRowCollection} System.Data.InternalDataCollectionBase   {System.Data.DataRowCollection} Count 699 int
  •   

1 个答案:

答案 0 :(得分:1)

监视窗口具有遍历私有引用和父对象的功能,这些对象通常是隐藏的,无法从代码访问。在您的情况下,您将看到DataRow.Table属性,它只是对父对象的引用。如果您深入了解Table.Row[0],您可以再次看到表格属性,然后您可以再次查看该表格。你可以在空闲时间做到这一点,并且为了好玩而继续深入和深入。我浪费了一生的时间试图到达树的尽头。