我是新手,正在学习C#,在Stackoverflow.com上查看了很多问题,但没有找到符合我需求的解决方案。所以我最终决定在这里发帖求助。
我的需求是从DataTable列名创建动态属性,并从DataTable设置属性值。最后将数据绑定到GridView。
因此,我决定按照以下步骤实现此功能(如果我有错误,请纠正我):
我的DataTable包含26行和10列的数据
我的需求是从DataTable列名创建动态属性,并从DataTable设置属性值。最后将数据绑定到GridView。
因此,我决定按照以下步骤实现此功能(如果我有错误,请纠正我):
我的DataTable包含26行和10列的数据
- 创建一个A类
- 从DataTable(列名)向A添加动态属性
- 设置A的属性值
- 将类A转换为A列表
- 将A列表绑定到GridView
1.
[Serializable]
public class A
{
public A()
{
}
}
2 & 3.
DataTable dt = getData();
dynamic expando = new ExpandoObject();
foreach (DataRow row in dt.Rows)
{
foreach (DataColumn col in dt.Columns)
{
var expandoDict = expando as IDictionary<String, Object>;
if (expandoDict.ContainsKey(col.ToString()))
expandoDict[col.ToString()] = row[col.ColumnName].ToString();
else
expandoDict.Add(col.ToString(), row[col.ColumnName].ToString());
}
}
执行完上述for循环后,“expando”对象仅包含数据表的最后一行。
请问您能否帮我修复步骤2至5。