【问题标题】:SQLITE inner join windows phone 8SQLITE 内连接 windows phone 8
【发布时间】:2015-08-27 00:00:26
【问题描述】:

我有两张桌子... ITEM 和 STOREITEM

 ITEM columns --ITMID_PK,ITMNAME, description ,iCON

STOREITEM columns   --ITMID_FK,PRICE

检索 ITEM 表的数据以列出并存储在列表框中。我关注这个

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

  foreach (var t in retrievedlist )
       {

           listbox.Items.Add(t);
       }

这非常适合单表

现在 我需要在这两个表的代码后面(c#)中执行 INNER 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>();

它只返回基于 ITEM 的列...即使查询方法..具有 INNER 连接查询

以下一个不起作用,因为它在查询方法中有无效参数(两个表名作为查询中的类给出)

    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>();

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

【问题讨论】:

    标签: c# .net sqlite join windows-phone-8


    【解决方案1】:

    创建一个类,该类具有该类的属性并使用该类。在您的情况下,它将具有 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>();
    

    【讨论】:

    • 填充那个新类..我需要写上面提到的类似查询..@Nishi
    • 只更改了类名将是相同的: List retrievedlist = 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();
    • 我也需要从 STOREITEM 获取一列......你提到的查询只返回 ITEM 表的列.....
    • 不,您也在查询 PRICE,但是因为您的 ITEM 类没有 PRICE 字段,所以您看不到返回值。所以你的新类应该有你要获取的所有列。
    • 你将如何填充新类..这个类应该有 ITEM 和 STOREITEM 的列......
    【解决方案2】:

    试试 ..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>();
    

    【讨论】:

    • 虽然这可能会回答问题并且允许仅代码回答,但您应该在代码中包含 cmets 和/或包含额外的解释,以改进您的回答并使 SO 社区更清楚。
    猜你喜欢
    • 2013-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    • 2014-11-27
    • 1970-01-01
    相关资源
    最近更新 更多