使用SQLite PCL插入新行

时间:2015-09-22 21:27:34

标签: c# linq sqlite uwp

我正在UWP制作一个movieApp,如果用户喜欢这部电影,我想存储一部电影中的id。我尝试过使用txt,但是对于访问被拒绝错误有很多问题。所以我决定使用sqlite insteed。

我用它来得到星球: https://code.msdn.microsoft.com/windowsapps/Implement-SQLite-Local-8b13a307#content

我一直在寻找一段时间,我发现所有信息都与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; }
    }

1 个答案:

答案 0 :(得分:1)

您不会在我的代码中的任何位置插入新项目。

看看这个简单的代码示例:

using (var connection = new SQLiteConnection(path)) 
{
    connection.CreateTable<MovieID>();
    connection.Insert(new MovieID { ID = "someId" });
    var movies = connection.Table<MovieID>().ToList();
}

如果你最后检查movies它应该有一个项目,一个带有“someId”ID的MovieId对象。