簡體   English   中英

如何使用Linq將SQLite日期時間與C#字符串進行比較

[英]How to compare SQLite datetime to C# string using Linq

我正在嘗試將SQLITE表值GameDate與C#字符串,使用Linq語句的tempDate進行比較。 我在“ var list = db.Table()”行上遇到錯誤。

由於我無法使Linq生產線正常工作。 我剛剛選擇了表的所有行,並使用for循環進行匹配。 (也不起作用)

這是我要使用的Linq語句。

// var list = db.Table()。Where(n => n.GameDate == Convert.ToDateTime(tempDate))。ToList();

這是我的代碼:

        int recCtr = 0;
        var root = Windows.Storage.ApplicationData.Current.LocalFolder.Path;
        var dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "BaseBallOU.db");
        List<string> myCollection = new List<string>();

        foreach (Object obj in GameDateListBox.Items)
        {
            string tempDate= obj.ToString();
            using (var db = new SQLite.SQLiteConnection(dbPath))
            {
                try
                {

                 //   var list = db.Table<Results>().Where(DateTime.Compare(GameDate.Value.Date, tempDate) == 0);
                 //   var list = db.Table<Results>().Where(n => n.GameDate== Convert.ToDateTime(tempDate)).ToList();
                       var list = db.Table<Results>().ToList();
                       foreach (var item in list)
                       {
                           recCtr++;
                           if (item.GameDate.ToString("d") == tempDate.ToString())
                           {
                               myCollection.Add(item.GameDate.ToString());
                           }
                       }
                }
                catch { }

            }
        }

TIA,任何幫助表示贊賞。

EF無法將Convert.ToDateTime解析為SQL。 取而代之的是,您可以在查詢外部聲明DateTime變量。

DateTime dt = Convert.ToDateTime(tempDate);
var list = db.Table().Where(n => n.GameDate == dt).ToList();

另外,您可能只需要比較DateTime Date()部分。 然后,您需要使用諸如EntityFunctions.TruncateTime()類的規范函數:

DateTime dt = Convert.ToDateTime(tempDate);
var list = db.Table().Where(n => EntityFunctions.TruncateTime(n.GameDate) == dt.Date).ToList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM