2012-06-27 71 views
0

我遇到了PetaPoco並決定試一試 有沒有人來過這個示例WindowsForms應用程序?到目前爲止,我只找到示例Web應用程序。適用於Windows窗體的PetaPoco示例應用程序

我瞭解PetaPoco與NHibranate類似的概念,但未能找到示例來了解如何將網格綁定到查詢結果。如果任何人手頭上有一個應用,最好是一個示例應用。

回答

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 
1

你應該能夠只是直接綁定到從public IEnumerable<T> Query<T>(string sql, params object[] args)返回List<T> - 例如從線752 PetaPoco.cs採取@source on GitHub

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