C# 如何使用Sqlite在数据库中保存值?
我正在尝试在wp8中做一个跟踪器应用程序。我想使用Sqlite在数据库中保存这些值。所有r值均有效(时间、距离和速度)。按下停止按钮后,我希望使用Sqlite将值发布到表视图中,正如您在第二个屏幕中看到的那样。任何好的建议或链接都将不胜感激。谢谢你 试试这个 为您提供了一个如何在windows Phone上使用sqlite的小教程 这段代码给出了答案C# 如何使用Sqlite在数据库中保存值?,c#,.net,windows-phone-7,xaml,windows-phone-8,listbox,timespan,C#,.net,Windows Phone 7,Xaml,Windows Phone 8,Listbox,Timespan,我正在尝试在wp8中做一个跟踪器应用程序。我想使用Sqlite在数据库中保存这些值。所有r值均有效(时间、距离和速度)。按下停止按钮后,我希望使用Sqlite将值发布到表视图中,正如您在第二个屏幕中看到的那样。任何好的建议或链接都将不胜感激。谢谢你 试试这个 为您提供了一个如何在windows Phone上使用sqlite的小教程 这段代码给出了答案 private void Insert_Click_1(object sender, RoutedEventArgs e) {
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);
}
}
private void Insert\u Click\u 1(对象发送方,路由目标)
{
//创建一个新任务。
任务=新任务()
{
Title=TitleField.Text,
Text=TextField.Text,
CreationDate=日期时间。现在
};
///在任务表中插入新任务。
dbConn.Insert(任务);
///从数据库中检索任务列表。
List retrievedTasks=dbConn.Table().ToList();
///清除将显示所有任务的列表框。
TaskListBox.Items.Clear();
foreach(retrievedTasks中的var t)
{
TaskListBox.Items.Add(t);
}
}
嗯,我看到这是一段检索代码。梅比
以下示例是一个插入:
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();
}
}
}
public void Initialize()
{
使用(var db=new SQLite.SQLiteConnection(_dbPath))
{
db.CreateTable();
//注意:这是一个过于简单的初始化场景
如果(db.ExecuteScalar(
“从客户中选择计数(1”)==0)
{
db.RunInTransaction(()=>
{
db.Insert(新客户(){
FirstName=“Jon”,LastName=“Galloway”});
db.Insert(新客户(){
FirstName=“杰西”,LastName=“自由”};
} );
}
其他的
{
加载();
}
}
}
我假设您的桌子是空的
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";
}
在获取信息时,请按此更改上述步骤
TextBoxDistance.Text = string.Format("{0:0.00}Km", val.distance);
这里的速度是多少,是以分钟和秒为单位的时间还是以小时和分钟为单位的时间请清除它fastpace=minutes/distance正如我所回答的,您可以更改以分钟为单位的总时间,并将其除以距离,然后将总分钟存储在database@RajVeer谢谢raj改进了我的回答我尝试了诺基亚网站链接,但没有成功。卡在中间无论如何,我使用SQLiteWinRTPhone完成了这个任务。
TextBoxDistance.Text = string.Format("{0:0.00}Km", val.distance);