即使表已正确填充,SQLite数据库游标也始终返回0

时间:2019-02-08 18:56:38

标签: c# android database sqlite xamarin

我已将数据保存在表PollCollection(PollID,PollName,VotingClass)和OptionCollection(OptionID,PollID,Option)中。我有一个名为Poll的类,其中可以保存字符串PollTitle和LinkedList选项(及其他)。我使用适当的VotingClass从PollCollection中读取了我的第一个PollName,然后尝试从OptionCollection中读取Option,其中PollID = PollCollection.PollID。但是,我的选项光标的长度为0。

我知道OptionCollection的保存正确,因为在另一段代码中,我设法运行了select *查询并打印了所有适当的值。在这一点上,我不知道我在想什么。另外,我正在使用Xamarin Android。

string pollquery = "";
        string optionsquery = "";
        pollquery = string.Format("select * from PollCollection where PollCollection.VotingClass = '{0}'", userclass);
        ICursor polls = MainActivity.sqlitedb.RawQuery(pollquery, null);
        if (polls.Count > 0)
        {
            polls.MoveToFirst();
            do
            {
                Poll currentpoll = new Poll();
                currentpoll.PollTitle = polls.GetString(polls.GetColumnIndex("PollName"));
                string pollid = polls.GetString(polls.GetColumnIndex("PollID"));
                optionsquery = string.Format("select Option from OptionCollection where OptionCollection.PollID = '{0}'", pollid);
                ICursor options = MainActivity.sqlitedb.RawQuery(optionsquery, new string[] { });
                options.MoveToFirst();
                do
                {
                    currentpoll.Options.AddLast(options.GetString(options.GetColumnIndex("Option")));
                } while(options.MoveToNext());
                polllist.AddLast(currentpoll);
            } while (polls.MoveToNext());
        }  

0 个答案:

没有答案