2012-08-24 60 views
1

嗨 我在讀取字典中給出id的數據表時遇到問題。任何人都請幫助我。以下是我的代碼。我有一個字典datasourceData我正在存儲數據表。我需要檢索存儲在字典中給定ID的數據表。 如何從數據字典中爲給定ID查詢數據表

public Dictionary<Guid, DataTable> dataSourceData { get; set; } 

public DataModel() 
     { 
      dataSourceData = new Dictionary<Guid, DataTable>(); 
      logger = new BasicFileLogger.Logger(); 
     } 

public DataTable GetDataSourceDescriptionById(Guid piId) 
     { 
      if (piId == null || piId == Guid.Empty) 
       throw new InvalidOperationException("No such datasourcedescriptionId"); 
      try 
      { 
       return dataSourceData.Values.Where(db => db.Equals(piId)); 
      } 
      catch (Exception ex) 
      { 
       logger.WriteException(ex); 
       throw new InvalidOperationException(ex.Message); 
      } 
     } 

幫助嗎?

回答

1

你可以簡單地訪問它使用的關鍵這一行:

if(dataSourceData.ContainsKey(yourGUID)) 
    DataTable dt = dataSourceData[yourGUID]; 

其中yourGUIDGUID要訪問反對,你可以檢查你的字典是否包含GUID ke y,所以你的方法可能是:

public DataTable GetDataSourceDescriptionById(Guid piId) 
     { 
      Dictionary<Guid, DataTable> dataSourceData = new Dictionary<Guid, DataTable>(); 
      if (dataSourceData.ContainsKey(piId)) 
      { 
       return dataSourceData[piId]; 
      } 
      else 
      { 
       InvalidOperationException ex = new InvalidOperationException("No such datasourcedescriptionId")); 
       logger.WriteException(ex); 
       throw ex; 
      } 
     } 
+0

現在感謝它的罰款 – user1557020

2

要更改

return dataSourceData.Values.Where(db => db.Equals(piId)); 

return dataSourceData[piId]; 
+0

謝謝它的工作正常 – user1557020

+0

螢火蟲,隨時標記問題爲答案。你可以通過選擇任何一個答覆者左邊的勾號來做到這一點 – saj

+0

如何選擇所有正確的答案,如果我選擇你的它取消選中其餘的答案:-) – user1557020