首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQLite和列出通用C#

SQLite和列出通用C#
EN

Stack Overflow用户
提问于 2012-10-22 23:03:25
回答 1查看 1.8K关注 0票数 2

我正在尝试使用SQLite为Windows8转换一些旧代码。下面是前一个会话中的代码,可以正常工作。

代码语言:javascript
运行
复制
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“子句工作。任何帮助,这是我当前的代码:

代码语言:javascript
运行
复制
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();

 }

希望这能解释这个问题。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-22 23:05:00

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
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);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13014210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档