如何从datadictionary查询给定id的数据表

时间:2012-08-24 10:06:11

标签: c# data-dictionary

你好 我在读取已在字典中给出id的数据表时遇到问题。请任何人帮助我。以下是我的代码。我有一个字典datasourceData我正在存储数据表。我需要检索存储在字典中的给定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);
            }
        }

请帮忙?

2 个答案:

答案 0 :(得分:2)

你想改变这一行

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

return dataSourceData[piId];

答案 1 :(得分:1)

您可以使用密钥轻松访问它:

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

其中yourGUID是您要访问的GUID,您可以检查您的词典是否包含GUID密钥,因此您可以使用以下方法:

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;
            }
        }