3

使用 c# 和 LinqToSql 我查询数据库表并返回单个唯一记录。

问题: 如何将查询结果放入字典中:数据库表的列名作为字典键,数据库表的列值作为字典值。

注意:我并不总是知道表格的列名的名称或编号

Dictionary<string, string> QueryResult = new Dictionary<string, string>

var UniqueRecord = (from tbl DataContext.Table
                                 where tbl.ColumnName1.Equals(Parameter1) 
                                 && tbl.ColumnName2.Equals(Parameter2)
                                 select tbl);

//如何将 var UniqueRecord 添加到 Dictionary

==================================================== =================================

我最终使用了这个

==================================================== =================================

var UniqueRecord = (from tbl DataContext.Table
                                 where tbl.ColumnName1.Equals(Parameter1) 
                                 && tbl.ColumnName2.Equals(Parameter2)
                                 select tbl);


 foreach(var item in OnlineBezeichnungRekord)
 {
   var properties = item.GetType()
                        .GetProperties()
                        .ToDictionary(p => p.Name, p => p.GetValue(item, null).ToString());

   Dictionary<string,string> DictionaryValues = properties;

  }
4

1 回答 1

1

DataRow考虑到手动将 a 转换为 a是多么简单Dictionary,我不会Enumerable.ToDictionary在你的情况下使用,而只是做循环:

Private Function GetDictionaryFromDataRow(dr As DataRow) As Dictionary(Of String, Object)
  Dim dict As New Dictionary(Of String, Object)
  For Each col As DataColumn In dr.Table.Columns
    dict.Add(col.ColumnName, dr.Item(col))
  Next
  Return dict
End Function

然后只需确保您的查询返回一个DataRow,所以使用UniqueRecord(0).

于 2012-11-19T14:30:28.010 回答