Petapoco:如何使用两个表中的连接来数据绑定gridview?

时间:2012-08-22 18:41:53

标签: petapoco

我不想使用自定义类。

var q = db.Query<dynamic>(query); //This does not work

查询具有来自多个表的连接和自定义创建的列。

3 个答案:

答案 0 :(得分:2)

您可以检查PetaPoco.cs“ExecuteReader”方法,看看它是否像这样(参见下面的代码):

我的文件在函数中没有任何代码,因此我在Execute标量方法之后对其进行建模。 这将返回一个完全可绑定到datagrid的通用DataTable。 但请记住,要对要实现的数据进行任何更改 您自己的CRUD方法,因为生成的DataTable是只读的。

    //Execute Reader
        public DataTable ExecuteReader(string sql, params object[] args)
        {
            try
            {
                OpenSharedConnection();
                try
                {
                    using (var cmd = CreateCommand(_sharedConnection, sql, args))
                    {
                        var val = cmd.ExecuteReader();
                        OnExecutedCommand(cmd);
                        var dt = new DataTable();
                        dt.Load(val);
                        return dt; //(T)Convert.ChangeType(val, typeof(T));
                    }
                }
                finally
                {
                    CloseSharedConnection();
                }
            }
            catch (Exception x)
            {
                OnException(x);
                throw;
            }
        }

        public DataTable ExecuteReader(Sql sql)
        {
            return ExecuteReader(sql.SQL, sql.Arguments);
        }

答案 1 :(得分:0)

创建一个类,其中包含要在网格中显示的两个表中的字段。 使用连接表的SQL语句填充查询并返回所需的列。 然后

var q=db.Query<YourClassName>.Query(query)

应该有用。

答案 2 :(得分:0)

您可以创建数据库视图,然后T4模板将自动为其生成类。你需要添加

IncludeViews = true;

到Database.tt