![](/img/trans.png)
[英]How to get a short DateTime from SQL Server database and compare with DateTime.Now using Linq 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.