2017-06-11 7 views
0

私はXamarinの初心者です。テーブル内の特定の行を選択する方法を探しています。ここでXamarin Forms sqlite詳細な行を選択してください

は私Methodeのです:

public List<MyWords> SelectWords(int rows , int x) 
     { 

      if (x<=6) { 
       var myword = (from word in conn.Table<MyWords>() 
           where (word.ID >= 10 && word.ID =< 17) 
           select word); 
       return myword.ToList(); 
      } 

(これは働いているが、物事はあなたがIDが10と17の間である3行を削除した場合、あなたは7行を取得することはありません、ですが、4(17-10 )= 7および(7-3)= 4)。

私は行を削除しても7行を取得する方法を探しています。または、より良い解決策を知っている場合。

私は考えていたかもしれませんが、私の言葉をリフレッシュする方法があるかもしれません.IDこれは常に動作します。

おかげ

+0

8行が10.17を含む範囲にあります。しかし、余分な行はどのように選択されるべきですか? –

+0

私は考えていた、おそらく私の言葉をリフレッシュする方法があります。それからこれはいつも動作します – hugo

+0

私はあなたがテーブルとリストを混乱させていると思います。リストから項目を削除すると、その上のすべてのメンバーがギャップを埋めるために1つ下にシフトします。配列のようなテーブルはシフトせず、単に項目がある場所にギャップを残します。削除された参照でオブジェクトを取得しようとすると、単にnullが返されます。 – cvanbeek

答えて

1

あなたは常にインデックス10後の次の7つの要素を取ったように、あなたはあなたのクエリこのような何か作ることができ、それを作りたい場合:

return conn.Table<MyWords>().Where(x => x.id >= 10).Take(7).ToList(); 

があればということを覚えておいてください17個のアイテムを持つテーブルを作成し、ids 12-16(5アイテム)のアイテムを削除して5個のアイテムを追加すると、ids 10、11、17 - 21のアイテムが返されます。ids

+0

ありがとう!これは動作しています! – hugo

関連する問題