私はPetaPocoに 出くわし、試してみることにしました。これを使ってサンプルのWindowsFormsアプリに出くわした人はいますか?これまでのところ、サンプルのWebアプリケーションしか見つかりませんでした。
NHibranateに似たPetaPocoの概念は理解していますが、グリッドをクエリの結果にバインドする方法を確認するための例を見つけることができませんでした。誰かが手元にある場合は、サンプルアプリが最適です。
次のようにWinformDataGridViewをバインドできます。
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行目から取得した例
かなり古いスレッドですが、誰かがこれを必要とするかもしれません。リストに直接バインドすると、それだけです。
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