gpt4 book ai didi

c# - SQLite 和列表通用 C#

转载 作者:行者123 更新时间:2023-11-30 21:03:08 25 4
gpt4 key购买 nike

我正在尝试使用 SQLite 为 Windows 8 转换一些旧代码。下面是上一个 session 中有效的代码。

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

}

希望这能解释问题。

谢谢

最佳答案

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。

Paolo Moretti 注意到您在之前的实现中使用了 order by random()。如果您想在 LINQ 中执行此操作,您可以按照此处的说明执行以下操作:Linq Orderby random ThreadSafe for use in ASP.NET

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

关于c# - SQLite 和列表通用 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13014210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com