C# 循环遍历主键并检索相应的数据?
我正在尝试循环执行SQLite查询,对于找到的每个pk,我都希望获得列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
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();
我得到了错误没有这样的函数:等于。任何建议都将其更改为“==”。您以前没有收到错误,因为您没有真正执行查询。不知道我怎么会错过。谢谢你的帮助。