2010-05-18 30 views
0
ISession s = Dal.Session; 

     string queryString = @"select t.SellDate as SellDate, t.DocumentNumber as DocNo, t.PriceGross as Gross, 
           t.PaymentDate as PaymentDate, ts.SettlementValue as SettlementValue, ds.{Path} + '\' + ds.Name as FilePath 
           from TransactionSettlement ts, Transaction t, DocScanned ds 
           where ts.TransactionId = t.Id and t.DocID = ds.DocID and ts.PaymentId = :paymentID"; 

query.SetInt32("paymentID", paymentID); 
IQuery query = s.CreateQuery(queryString); 
IList resultList = query.List(); 

如何将nhibernate查询结果绑定到asp.net datagrid?Nhibernate - 查询结果到asp.net datagrid

回答

0

所以你看到的错误是因为你的​​是一个对象数组列表(object[])而不是实际的对象。

,你可以做些什么来获取数据到您想要的形状是写一个LINQ(LINQ到对象,而不是LINQ NHibernate的),它可能会看这些方针的东西:

var newResultList = from r in resultList 
        select new { 
         SellDate = r[0], 
         DocNo = r[1], 
         Gross = r[2], 
         PaymentDate = r[3], 
         SettlementValue = r[4], 
         FilePath = r[5] 
        }; 

然后你会有一个对象,你可以更容易地绑定到数据绑定。可能有办法将每行数据绑定到一个数组,我只是没有找到如何做到这一点的例子。

+0

:-)我想通过给列别名绑定到数据网格: ...的 ... – Mark 2010-05-18 12:31:57

+0

@Mark:好的?列别名(成为属性别名)将仍然工作,如果你以这种方式绑定数据(或者至少他们应该)。 – R0MANARMY 2010-05-18 13:06:11

+0

我得到这个错误,如果我直接数据绑定resultList: “的DataBinding:‘System.Object的[]’不包含名为‘文件路径’属性......” – Mark 2010-05-19 11:49:00