我遇到了 PetaPoco并决定试一试 有没有人遇到过这样的示例 WindowsForms 应用程序?到目前为止,我只找到了示例 Web 应用程序。
我了解类似于 NHibranate 的 PetaPoco 概念,但我找不到一个示例来了解如何将 Grid 绑定到查询结果。如果有人手头有一个,最好是一个示例应用程序。
您可以像这样绑定 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
您应该能够直接绑定到List<T>
返回的public IEnumerable<T> Query<T>(string sql, params object[] args)
- 示例取自GitHub 上 PetaPoco.cs @ source 的第 752 行
即使它是相当古老的线程,也许有人会需要这个。直接绑定到 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