Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 循环遍历主键并检索相应的数据?_C#_Sqlite_Windows 8 - Fatal编程技术网

C# 循环遍历主键并检索相应的数据?

C# 循环遍历主键并检索相应的数据?,c#,sqlite,windows-8,C#,Sqlite,Windows 8,我正在尝试循环执行SQLite查询,对于找到的每个pk,我都希望获得列date的对应值。这是我到目前为止所拥有的。我的dynamictextbox1将填充代码而不是日期 public void createEntry() { var dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "data.db"); /*using (var db

我正在尝试循环执行SQLite查询,对于找到的每个pk,我都希望获得列
date
的对应值。这是我到目前为止所拥有的。我的dynamictextbox1将填充代码而不是日期

    public void createEntry()
    {
        var dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "data.db");

        /*using (var db = new SQLiteConnection(dbPath))
        {
            db.CreateTable<LogEntry>();
            db.RunInTransaction(() =>
            {
                db.Insert(new LogEntry() { date = dateBox.SelectedItem.ToString(), 
                                           startTime = startTimeBox.SelectedItem.ToString(),
                                           endTime = endTimeBox.SelectedItem.ToString(),
                                           activity = activityBox.SelectedItem.ToString(),
                                           type = typeBox.SelectedItem.ToString()
                });
            });
        }*/

        //If the database is empty then don't set the listview itemssource to it otherwise you will get an error.
        using (var db = new SQLiteConnection(dbPath))
        {
            if (db.Table<LogEntry>().Count() > 0)
            {
                var query0 = db.Table<LogEntry>().Select(v => v.ID);
                var query1 = db.Table<LogEntry>().Select(v => v.date.ToString());
                var query2 = db.Table<LogEntry>().Select(v => v.startTime.ToString());
                var query3 = db.Table<LogEntry>().Select(v => v.endTime.ToString());
                var query4 = db.Table<LogEntry>().Select(v => v.activity.ToString());
                var query5 = db.Table<LogEntry>().Select(v => v.type.ToString());
                foreach (var item0 in query0)
                {

                    //var dateID = db.Table<LogEntry>().Where(v => v.ID = query0);

                    //Create the controls and populate them.
                    StackPanel dynamicStackPanel0 = new StackPanel();
                    dynamicStackPanel0.Orientation = Orientation.Horizontal;

                    StackPanel dynamicStackPanel1 = new StackPanel();
                    StackPanel dynamicStackPanel2 = new StackPanel();
                    StackPanel dynamicStackPanel3 = new StackPanel();

                    TextBlock dynamicTextBlock1 = new TextBlock();
                    var dataID = db.Table<LogEntry>().Where( v => v.ID.Equals(item0)).Select(v => v.date);
                    dynamicTextBlock1.Text = dataID.ToString();

                    TextBlock dynamicTextBlock2 = new TextBlock();
                    foreach (var item2 in query2)
                    {
                        dynamicTextBlock2.Text = item2.ToString();
                    }

                    TextBlock dynamicTextBlock3 = new TextBlock();
                    foreach (var item3 in query3)
                    {
                        dynamicTextBlock3.Text = item3.ToString();
                    }

                    TextBlock dynamicTextBlock4 = new TextBlock();
                    foreach (var item4 in query4)
                    {
                        dynamicTextBlock4.Text = item4.ToString();
                    }

                    TextBlock dynamicTextBlock5 = new TextBlock();
                    foreach (var item5 in query5)
                    {
                        dynamicTextBlock5.Text = item5.ToString();
                    }

                    TextBlock dynamicTextBlock6 = new TextBlock();
                    dynamicTextBlock6.Text = "Rating 1";

                    TextBlock dynamicTextBlock7 = new TextBlock();
                    dynamicTextBlock7.Text = "Rating 2";

                    TextBlock dynamicTextBlock8 = new TextBlock();
                    dynamicTextBlock8.Text = "Rating 3";

                    //Create the entries.
                    dynamicStackPanel1.Children.Add(dynamicTextBlock1);
                    dynamicStackPanel1.Children.Add(dynamicTextBlock2);
                    dynamicStackPanel1.Children.Add(dynamicTextBlock3);

                    dynamicStackPanel2.Children.Add(dynamicTextBlock4);
                    dynamicStackPanel2.Children.Add(dynamicTextBlock5);

                    dynamicStackPanel3.Children.Add(dynamicTextBlock6);
                    dynamicStackPanel3.Children.Add(dynamicTextBlock7);
                    dynamicStackPanel3.Children.Add(dynamicTextBlock8);

                    dynamicStackPanel0.Children.Add(dynamicStackPanel1);
                    dynamicStackPanel0.Children.Add(dynamicStackPanel2);
                    dynamicStackPanel0.Children.Add(dynamicStackPanel3);

                    entryPanel.Items.Add(dynamicStackPanel0);
                }
            }
        }
    }
public void createEntry()
{
var dbPath=Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path,“data.db”);
/*使用(var db=new-SQLiteConnection(dbPath))
{
db.CreateTable();
db.RunInTransaction(()=>
{
db.Insert(new LogEntry(){date=dateBox.SelectedItem.ToString(),
startTime=startTimeBox.SelectedItem.ToString(),
endTime=endTimeBox.SelectedItem.ToString(),
activity=activityBox.SelectedItem.ToString(),
type=typeBox.SelectedItem.ToString()
});
});
}*/
//如果数据库为空,则不要将listview项资源设置为空,否则会出现错误。
使用(var db=new-SQLiteConnection(dbPath))
{
如果(db.Table().Count()>0)
{
var query0=db.Table().Select(v=>v.ID);
var query1=db.Table().Select(v=>v.date.ToString());
var query2=db.Table().Select(v=>v.startTime.ToString());
var query3=db.Table().Select(v=>v.endTime.ToString());
var query4=db.Table().Select(v=>v.activity.ToString());
var query5=db.Table().Select(v=>v.type.ToString());
foreach(查询0中的var item0)
{
//var dateID=db.Table(),其中(v=>v.ID=query0);
//创建控件并填充它们。
StackPanel dynamicStackPanel0=新的StackPanel();
dynamicStackPanel0.方向=方向.水平;
StackPanel DynamicStackPanel 1=新的StackPanel();
StackPanel dynamicStackPanel2=新的StackPanel();
StackPanel dynamicStackPanel3=新的StackPanel();
TextBlock dynamicTextBlock1=新的TextBlock();
var dataID=db.Table()。其中(v=>v.ID.Equals(item0))。选择(v=>v.date);
dynamicTextBlock1.Text=dataID.ToString();
TextBlock dynamicTextBlock2=新的TextBlock();
foreach(查询2中的变量项2)
{
dynamicTextBlock2.Text=item2.ToString();
}
TextBlock dynamicTextBlock3=新的TextBlock();
foreach(查询3中的变量项3)
{
dynamicTextBlock3.Text=item3.ToString();
}
TextBlock dynamicTextBlock4=新的TextBlock();
foreach(查询4中的变量项4)
{
dynamicTextBlock4.Text=item4.ToString();
}
TextBlock dynamicTextBlock5=新的TextBlock();
foreach(查询5中的变量项5)
{
dynamicTextBlock5.Text=item5.ToString();
}
TextBlock dynamicTextBlock6=新的TextBlock();
dynamicTextBlock6.Text=“评级1”;
TextBlock dynamicTextBlock7=新的TextBlock();
dynamicTextBlock7.Text=“评级2”;
TextBlock dynamicTextBlock8=新的TextBlock();
dynamicTextBlock8.Text=“评级3”;
//创建条目。
dynamicTrackPanel1.Children.Add(dynamicTextBlock1);
dynamicTrackPanel1.Children.Add(dynamicTextBlock2);
dynamicTaskPanel1.Children.Add(dynamicTextBlock3);
dynamicTrackPanel2.Children.Add(dynamicTextBlock4);
dynamicTrackPanel2.Children.Add(dynamicTextBlock5);
dynamicTrackPanel3.Children.Add(dynamicTextBlock6);
dynamicTaskPanel3.Children.Add(dynamicTextBlock7);
dynamicTaskPanel3.Children.Add(dynamicTextBlock8);
dynamicStackPanel0.Children.Add(dynamicStackPanel1);
dynamicStackPanel0.Children.Add(dynamicStackPanel2);
dynamicStackPanel0.Children.Add(dynamicStackPanel3);
entryPanel.Items.Add(dynamicStackPanel0);
}
}
}
}

Select
提供可枚举的日期。您需要
FirstOrDefault

var dataID = db.Table<LogEntry>().Where( v => v.ID == item0)
               .Select(v => v.date).FirstOrDefault();
dynamicTextBlock1.Text = dataID.ToString();
var dataID=db.Table()。其中(v=>v.ID==item0)
.Select(v=>v.date).FirstOrDefault();
dynamicTextBlock1.Text=dataID.ToString();

我得到了错误
没有这样的函数:等于。任何建议都将其更改为“==”。您以前没有收到错误,因为您没有真正执行查询。不知道我怎么会错过。谢谢你的帮助。