【问题标题】:SQLite.Net Extensions Data insertion error on Windows Phone 8.1 Runtime projectWindows Phone 8.1 运行时项目上的 SQLite.Net 扩展数据插入错误
【发布时间】:2015-07-03 14:52:14
【问题描述】:

我一直在使用 SQLiteAsyncConnection 进行所有数据库操作,最近我才知道它不允许表之间的关联。现在我正在移动代码以使用支持扩展的 SQLite.Net 扩展。当我将日期时间数据插入表中时,我发现了一个奇怪的问题。它完全改变了插入的日期时间。

App.db2.Insert(new FrequentlyAssignedShifts()
                {
                    ShiftStart = Convert.ToDateTime(btnShiftStart.Content.ToString()),
                    ShiftEnd = Convert.ToDateTime(btnShiftEnd.Content.ToString()),
                });

这就是建立连接的方式。

        string databasePath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "Scheduler.sqlite");
    public static SQLiteConnection db2;
    var platform = new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT();
    db2 = new SQLiteConnection(platform, databasePath);

我使用断点检查直到最后一点,是否插入了正确的数据。一切看起来都很好,它从按钮控件中获取了正确的日期,但是当它通过这部分代码时,日期值会发生变化。 “ShiftStart & ShiftEnd”变量是表中的日期时间变量。有人可以请教。

感谢您阅读这篇文章。

【问题讨论】:

    标签: c# sqlite sqlite.net


    【解决方案1】:

    也许为时已晚,但据我所知,时间在数据库中保存为刻度,因此不要使用“日期”或“时间戳”或其他任何东西,而是使用 bigint,因此,该字段将保持时间为使用 UTC 计时,一旦从数据库中检索值,请使用 DateTime 和 vioala 中的函数“ToLocalTime()”!!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多