我是Petapoco的新手,我可以使用petapoco ORM中的存储过程将表数据检索为Datatable吗?我试过谷歌,但我没有从谷歌得到任何答案。任何人都知道吗?
答案 0 :(得分:0)
是的,您可以使用Petapoco执行存储过程。
示例:
var result = db.Fetch<dynamic>(";EXEC GetSomething @@Year = @0", 2017);
Petapoco返回List<T>
,我建议您使用List而不是Datatable,但如果您愿意,可以使用convert your list to a Datatable
答案 1 :(得分:0)
步骤1:
public DataTable ListToDataTable(IList list)
{
var dt = new DataTable();
if (list.Count <= 0) return dt;
var properties = list[0].GetType().GetProperties();
foreach (var pi in properties)
{
dt.Columns.Add(pi.Name, Nullable.GetUnderlyingType(pi.PropertyType) ?? pi.PropertyType);
}
foreach (var item in list)
{
DataRow row = dt.NewRow();
properties.ToList().ForEach(p => row[p.Name] = p.GetValue(item, null) ?? DBNull.Value);
dt.Rows.Add(row);
}
return dt;
}
步骤2:
var list = db.Fetch<dynamic>(sql);
var dt = ListToDataTable(list);