2

SQLite を使用して Windows 8 用の古いコードを変換しようとしています。以下は、動作する以前のセッションのコードです。

using (SqliteConnection conn = new SqliteConnection("Version=3,uri=file://flashcards0904.db"))
        {
            conn.Open();
            using (SqliteCommand cmd = conn.CreateCommand())
            {
                cmd.CommandText = "SELECT * FROM Decks where DeckGroup='" + Global.currentDeckGroup.ToString() + Global.currentDeck.ToString() + "'" + "order by random()";

                List<string> myCollection = new List<string>();

                using (SqliteDataReader reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        myCollection.Add(reader.GetString(0) + "~" + reader.GetString(1) + "~" + reader.GetString(2));
                        Global.words = myCollection.ToArray();
                    }
                }
                conn.Close();
                Community.CsharpSqlite.FileStream.HandleTracker.Clear();
            }
        }

現在、SqliteDataReader にアクセスできず、List<> 関数を使用しようとしていますが、「Where」句を機能させることができません。どんな助けでも、ここに私の現在のコードがあります:

var root = Windows.Storage.ApplicationData.Current.LocalFolderPath;
var dbPath= Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolderPath,"flashcards0904.db");

using( var db= new SQLite.SQLiteConnection(dbPath))
{
// Here is location for the missing Where Clause"

    var list= db.Table<Decks>.Where??????? .ToList();

 }

これで問題が解決することを願っています。

ありがとう

4

1 に答える 1

3
var list= db.Table<Decks>.Where(n=>n.DeckGroup == (Global.currentDeckGroup.ToString() + Global.currentDeck.ToString())).ToList()

http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811bをご覧になることをお勧めします。

そこには、LINQ to SQL を理解するのに役立つ多数の例があります。

order by random()パオロ・モレッティは、あなたが以前の実装で使用していたことに気づきました。LINQ でこれを行いたい場合は、次のように実行できます。ASP.NET で使用するための Linq Orderby random ThreadSafe

Random random = new Random();
int seed = random.Next();
var list= db.Table<Decks>.Where(n=>n.DeckGroup == (Global.currentDeckGroup.ToString() + Global.currentDeck.ToString())).OrderBy(s => (~(s.Shuffle & seed)) & (s.Shuffle | seed)).ToList(); // ^ seed);
于 2012-10-22T15:05:00.390 に答える