我正在尝试在 wp8 中做一个跟踪器应用程序。我想使用 Sqlite 将值保存在数据库中。所有值 r 工作(时间、距离和步速)。按下停止按钮后,我希望使用 Sqlite 将值发布到表格视图中,正如您在第二个屏幕中看到的那样。任何好的建议或链接表示赞赏。感谢你。
问问题
1341 次
2 回答
1
我假设你的桌子是。
public class HistoryTable
{
public string date { get; set; }
public string time { get; set; }
public double pace { get; set; }
public double distance { get; set; }
}
使用此语句插入值。
string date = DateTime.Now.ToShortDateString();
string time = DateTime.Now.ToShortTimeString();
double pace = 16;
double distance = 4;
SQLiteConnection conn = new SQLiteConnection(System.IO.Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "Database.sqlite"));
conn.Execute("Insert into HistoryTable values(?,?,?,?)", date, time, pace, distance);
按照以下语句获取您的数据,我假设您知道如何在需要时绑定列表框中的数据。我正在使用文本框中的值。
SQLiteConnection conn = new SQLiteConnection(System.IO.Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "Database.sqlite"));
var result = conn.Table<HistoryTable>();
foreach (var val in result)
{
TimeSpan pace = TimeSpan.FromMinutes(val.pace);
TextBoxDate.Text = val.date;
TextBoxTime.Text = val.time;
TextBoxPace.Text = pace.Minutes + ":" + pace.Seconds;
TextBoxDistance.Text = val.distance + " Km";
}
我之所以使用 Pace 作为双精度值,是因为我可以将此双精度值用作总分钟数,并且可以将其更改为时间跨度(以分钟和秒为单位)。对于任何其他问题,您可以随时询问。要获得与您在问题中提出的完全相同的格式,您也应该像这样使用。
string date = string.Format("{0:00}.{1:00}.{2:00}", DateTime.Now.Day, DateTime.Now.Month, DateTime.Now.Year);
string time = DateTime.Now.ToString("HH:mm:ss");
double pace = 16.5;
double distance = 4;
SQLiteConnection conn = new SQLiteConnection(System.IO.Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "Database.sqlite"));
conn.Execute("Insert into HistoryTable values(?,?,?,?)", date, time, pace, distance);
在获取信息时,请按此更改上述步骤。
TextBoxDistance.Text = string.Format("{0:0.00}Km", val.distance);
于 2013-07-01T15:00:26.997 回答
1
在这里试试这个诺基亚开发者网站。
给你一个小教程如何在 windows 手机上使用 sqlite。
这段代码给你答案?
private void Insert_Click_1(object sender, RoutedEventArgs e)
{
// Create a new task.
Task task = new Task()
{
Title = TitleField.Text,
Text = TextField.Text,
CreationDate = DateTime.Now
};
/// Insert the new task in the Task table.
dbConn.Insert(task);
/// Retrieve the task list from the database.
List<Task> retrievedTasks = dbConn.Table<Task>().ToList<Task>();
/// Clear the list box that will show all the tasks.
TaskListBox.Items.Clear();
foreach (var t in retrievedTasks)
{
TaskListBox.Items.Add(t);
}
}
嗯,我看到这是一段检索代码。Maybee 这个网站可以帮助你进一步。
以下示例是插入:
public void Initialize()
{
using ( var db = new SQLite.SQLiteConnection( _dbPath ) )
{
db.CreateTable<Customer>();
//Note: This is a simplistic initialization scenario
if ( db.ExecuteScalar<int>(
"select count(1) from Customer" ) == 0 )
{
db.RunInTransaction( () =>
{
db.Insert( new Customer() {
FirstName = "Jon", LastName = "Galloway" } );
db.Insert( new Customer() {
FirstName = "Jesse", LastName = "Liberty" } );
} );
}
else
{
Load();
}
}
}
于 2013-07-01T14:15:10.530 回答