Petapoco与数据表

时间:2017-07-06 12:14:09

标签: c# sql asp.net-mvc petapoco

我是Petapoco的新手,我可以使用petapoco ORM中的存储过程将表数据检索为Datatable吗?我试过谷歌,但我没有从谷歌得到任何答案。任何人都知道吗?

2 个答案:

答案 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);