0

我遇到了 PetaPoco并决定试一试 有没有人遇到过这样的示例 WindowsForms 应用程序?到目前为止,我只找到了示例 Web 应用程序。

我了解类似于 NHibranate 的 PetaPoco 概念,但我找不到一个示例来了解如何将 Grid 绑定到查询结果。如果有人手头有一个,最好是一个示例应用程序。

4

3 回答 3

2

您可以像这样绑定 Winform DataGridView:

    Dim ppdb = New PetaPoco.Database("Data Source=XXXX;Initial Catalog=xxxx;Integrated Security=True;", "System.Data.SqlClient")
    Dim blTable = New BindingList(Of TableItem)(ppdb.Query(Of TableItem)("select * from table").ToList)
    Dim bsTable As New BindingSource(blTable, "")
    DataGridView.DataSource = bsTable

如果要保留更改,则需要将对象保存回数据库。

要将 POCO 绑定到一行,请使用:

Dim obj = DataGridView.Rows(RowIndex).DataBoundItem
于 2012-06-27T20:50:24.263 回答
1

您应该能够直接绑定到List<T>返回的public IEnumerable<T> Query<T>(string sql, params object[] args)- 示例取自GitHub 上 PetaPoco.cs @ source 的第 752 行

于 2012-06-27T12:38:54.963 回答
0

即使它是相当古老的线程,也许有人会需要这个。直接绑定到 List 就是这样。

    using (var db = new PetaPoco.Database(string_connection, string_provider))
    {
        try
        {
            var ret = db.Query<MyTable>("select * from my_table_name").ToList();

            if(ret != null)
            {
                dgv.DataSource = ret; 
            }
        }
        catch (Exception ex)
        {
            Trace.WriteLine("Error: " + ex.Message); 
        }
    } // using
于 2015-06-02T12:29:48.173 回答