用SQLite PCL插入新行
本文关键字:新行 插入 PCL SQLite | 更新日期: 2023-09-27 18:14:06
我正在制作UWP中的movieApp,我想从电影中存储一个id,如果用户喜欢这部电影。我已经尝试过txt,但有很多问题与拒绝访问错误。所以我决定用sqlite代替。
我用这个来获得标准:https://code.msdn.microsoft.com/windowsapps/Implement-SQLite-Local-8b13a307内容
我已经搜索了一段时间了,我发现所有的信息都不能与sqlite pcl一起工作。看起来我找到的例子中使用的许多方法并不存在。
所以似乎很少有例子在那里…也许你们可以用正确的方式推动我…
这是我目前为止的代码:
private void LikeIt()
{
var sqlpath = System.IO.Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "Filmdb.sqlite");
using (SQLite.Net.SQLiteConnection conn =
new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), sqlpath))
{
if (File.Exists(sqlpath))
{
AdMovieID();
}
else
{
conn.CreateTable<MovieID>();
AdMovieID();
}
}
}
private void AdMovieID()
{
var sqlpath = System.IO.Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "Filmdb.sqlite");
SQLite.Net.SQLiteConnection conn = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), sqlpath);
//This is where i have tried some of the things i have found
// like this:
//SQLite.Net.SQLiteCommand insertSQL =
//new SQLite.Net.SQLiteCommand("INSERT INTO MovieID(ID) VALUES(?), conn)<-- error: dosent work no constructor that takes arguments;
//insertSQL.Parameters.Add(MovieID.ID);
//Just to test if something is saved
var allaId = conn.Find<MovieID>(sqlpath).ID;//<-- just tried this and it dosent work either "Object reference not set to an instance of an object."
foreach (var id in allaId)
{
Test.Text = id.ToString();
}
}
在SQLite中使用的类:
public class MovieID
{
public string ID { get; set; }
}
你没有在代码的任何地方插入一个新项目,从我可以看到。
看看这个简单的代码示例:
using (var connection = new SQLiteConnection(path))
{
connection.CreateTable<MovieID>();
connection.Insert(new MovieID { ID = "someId" });
var movies = connection.Table<MovieID>().ToList();
}
如果你在最后检查movies
,它应该有一个项目,一个MovieId对象与"someId" ID。