我必须显示具有列名的表中的数据,并且我正在使用LINQ查询从数据库中获取数据。我必须从表中只选择一行。
数据行
| Column 1 | | Column 2 | | Column 3 |
------------ ------------ ------------
| value1 | | value 2 | | value 3 |
数据将以此形式显示。
| Column Name | | Value |
| Column 1 | | value 1 |
| Column 2 | | value 2 |
| Column 3 | | value 3 |
有没有办法将数据输入字典,其中列名将用作键,数据用作值?
答案 0 :(得分:2)
最后,我设法使用以下代码以我想要的形式获取数据。
Dictionary<string, string> dictionaryData = new Dictionary<string, string>();
using (var db = new DbContext())
{
db.Configuration.ProxyCreationEnabled = false; // disable lazy loading if require.
var dataFromDB= db.TestTable.Where(x => x.ID == id).FirstOrDefault();
var props = dataFromDB.GetType().GetProperties(); // Get All properties of table class
foreach (var column in props)
{
string columnName = column.Name;
string columnValue = string.Empty;
if(column.GetValue(dataFromDB) != null) // check obj has value for that particular property
{
columnValue = column.GetValue(dataFromDB).ToString();
}
dictionaryData .Add(columnName,columnValue); // Add Column Name as key and Column Data As Value
}
}
答案 1 :(得分:0)
你的问题不清楚。如果我理解正确,您的表格如下:
| Column name |
---------------
| value1 |
| value2 |
您希望有两个词典条目
Key = "Column name", Value = "value1"
Key = "Column name", Value = "value2"
在C#with dictionary中你不能拥有它! &#34; Key&#34;必须是独一无二的 点击此处:https://msdn.microsoft.com/en-us/library/xfhwa508(v=vs.110).aspx (向下滚动到备注部分)。
你可以做一些肮脏的解决方法,如:
Dictionary<string, List<object>>
但这看起来很脏!