1

我正在尝试在 wp8 中做一个跟踪器应用程序。我想使用 Sqlite 将值保存在数据库中。所有值 r 工作(时间、距离和步速)。按下停止按钮后,我希望使用 Sqlite 将值发布到表格视图中,正如您在第二个屏幕中看到的那样。任何好的建议或链接表示赞赏。感谢你。

在此处输入图像描述

4

2 回答 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 回答