2015-06-11 71 views
2

我有两个表... ITEM和STOREITEMSQLITE内连接的Windows Phone 8

ITEM columns --ITMID_PK,ITMNAME, description ,iCON 

STOREITEM columns --ITMID_FK,PRICE 

在列表框检索项目表的数据,列出和存储。我按照这个

List<ITEM> retrievedlist = sqlconn.query<ITEM>("select * from ITEM").ToList<ITEM>(); 

    foreach (var t in retrievedlist) 
     { 

      listbox.Items.Add(t); 
     } 

这完全适用于单个表

现在 我需要执行INNER在后面的代码(C#)JOIN这两个表..

我曾尝试是。 。

List<STOREITEM> retrievedlist = sqlconn.Query<STOREITEM>("select ITEM.ITMNAME,ITEM.ICON,STOREITEM.PRICE FROM ITEM INNER JOIN STOREITEM ON ITEM.ITMID_PK=STOREITEM.ITMID_FK ORDER BY ITMNAME").ToList<STOREITEM>(); 

它只返回基于STOREITEM列,我们给STOREITEM除了查询方法..

,所以我想这太

List<ITEM> retrievedlist = sqlconn.Query<ITEM>("select ITEM.ITMNAME,ITEM.ICON,STOREITEM.PRICE FROM ITEM INNER JOIN STOREITEM ON ITEM.ITMID_PK=STOREITEM.ITMID_FK ORDER BY ITMNAME").ToList<ITEM>(); 

它只返回基于项目列...即使查询方法..已INNER JOIN查询

下一个不会工作,因为它在参数无效查询方法(列为类中查询<两个表的名称>)

List<ITEM,STOREITEM> retrievedlist = sqlconn.Query<ITEM>("select ITEM.ITMNAME,ITEM.ICON,STOREITEM.PRICE FROM ITEM INNER JOIN STOREITEM ON ITEM.ITMID_PK=STOREITEM.ITMID_FK ORDER BY ITMNAME").ToList<ITEM>(); 

请帮我看看这个.. 查询的数据应该存储在列表中,然后该列表应添加为项目列表框.. 任何帮助表示赞赏...

回答

2

创建一个类,它具有来自这两个类的属性,并使用该类。在你的情况下,它会有ITMID_PK,ITMNAME,说明,iCON和PRICE。只需保持属性名称与列名称相同即可。这个类可以是这两个类的独立类或基类。

编辑:您可以创建一个类这样

public class Class1 
{ 
    public string ITMID_PK { get; set; } 
    public string ITMNAME { get; set; } 
    public string description { get; set; } 
    public string iCON { get; set; } 
    public string PRICE { get; set; } 

} 

修改查询:

List<Class1> retrievedlist = sqlconn.Query<Class1>("select ITEM.ITMNAME,ITEM.ICON,STOREITEM.PRICE FROM ITEM INNER JOIN STOREITEM ON ITEM.ITMID_PK=STOREITEM.ITMID_FK ORDER BY ITMNAME").ToList<Class1>(); 
+0

来填充新类..我需要写如上所述的类似的查询.. @Nishi –

+0

它将与只更改类名相同:列表 retrievelist = sqlconn.Query (“select ITEM.ITMNAME,ITEM.ICON,STOREITEM.PRICE FROM ITEM INNER JOIN STOREITEM ON ITEM.ITMID_PK = STOREITEM.ITMID_FK ORDER BY ITMNAME”)ToList (); – Nishi

+0

我还需要从STOREITEM中获得一列......查询中提到的只返回ITEM表的列..... –

0

尝试..this ..它的工作原理..

List<NEW_CLASS> retrievedlist = sqlconn.Query<NEW_CLASS>("select ITEM.ITMNAME,ITEM.ICON,STOREITEM.PRICE FROM ITEM INNER JOIN STOREITEM ON ITEM.ITMID_PK=STOREITEM.ITMID_FK ORDER BY ITMNAME").ToList<NEW_CLASS>(); 
+0

虽然这可能会回答问题,并且只允许使用代码答案,但您应该在代码中包含注释和/或包含其他说明以改进答案,并使SO社区变得更加清晰。 – JNYRanger