2016-03-11 39 views
-3

當我查看代碼結束時的行計數 - 它表示它是一張表,並具有與dt相同的行數!爲什麼ROWS [0]將整個表格返回給DataRow?

爲什麼?

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; 
    } 
} 
  • 博士{}的System.Data.DataRow的System.Data.DataRow HasErrors假布爾
  • ItemArray {對象[1]}對象[] RowError 「」 串的RowState不變System.Data。的DataRowState
  • 表{表} System.Data.DataTable
  • 基{表} System.ComponentModel.MarshalByValueComponent {System.Data.DataTable}假CASESENSITIVE布爾
  • ChildRelations {SY stem.Data.DataRelationCollection.DataTableRelationCollection} System.Data.DataRelationCollection {System.Data.DataRelationCollection.DataTableRelationCollection}
  • 列{System.Data.DataColumnCollection} System.Data.DataColumnCollection
  • 約束{System.Data.ConstraintCollection} System.Data.ConstraintCollection
  • 數據集{System.Data.DataSet中} System.Data.DataSet中
  • 默認視圖{System.Data.DataView} System.Data.DataView DisplayExpression 「」 串
  • ExtendedProperties計數= 0系統。 Data.PropertyCollection HasErrors false bool IsInitialize d真布爾
  • 區域設置{EN-GB} System.Globalization.CultureInfo MinimumCapacity 50 INT命名空間 「」 串
  • 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
  • 行{System.Data.DataRowCollection} System.Data.DataRowCollection
  • base {System.Data.DataRowCollection} System.Dat a.InternalDataCollectionBase {} System.Data.DataRowCollection計數699 INT
+2

Impossibru !!!!! – CarbineCoder

+2

_「當我看行數」_你最近怎麼樣?你是否將鼠標懸停在調試器上?還是使用觀看窗口?鼠標是否在正確的變量?你有錯別字嗎? ('dr'和'dt'只有一個鍵等)。 –

+1

停止寫入2個字母的變量名稱。每個單獨的編輯器都有代碼完成功能,通過使用雙字母變量實現的唯一功能是惹惱任何試圖閱讀代碼的人。這是對編程作爲工藝的一種侮辱。使用描述性變量名稱。總是。 –

回答

1

監視窗口具有以下特徵:通過私有引用和父對象,其通常是隱藏的,而不是從代碼訪問遍歷。在你的情況下,你正在看到DataRow.Table屬性,它只是對父對象的引用。如果您深入瞭解Table.Row[0],則可以再次查看錶格屬性,並且可以再次查看錶格。你可以在你的空閒時間做到這一點,併爲了好玩而繼續深入和深入。我浪費了幾天的時間試圖到達樹的盡頭。