私は以下の問題があります:データベーステーブルには、売上が記録されています。フィールドの1つは、SQL Server Date型のSaleDateです。ウェブサイトでこのフィールドを検索できるようになりました。そしてそれは年だけを検索することができます。Linq-to-SQLで日付を確認
2008/11/01のレコードが1つあるとします。私が "2008"を検索した場合、そのエントリーが返されますが、これはもちろん正しいです。しかし、 "2008/11/01"を検索してもエントリは返されません。
filteredSales = filteredSales.Where(s => s.SaleDate.ToString().Contains(searchterm));
I have also tried this ones:
filteredSales = filteredSales.Where(s => s.SaleDate.Value.ToString().Contains(searchterm));
filteredSales = filteredSales.Where(s => s.SaleDate.Value.ToShortDateString().Contains(searchterm));
彼らはまた、動作しません:
は、だからここに私のコードです。
これはドイツ語のアプリケーションであり、検索用語が実際には "01.11.2008"なので、LinQの問題ではないかもしれません。しかし、データベースから値を出力したり、データベースを直接見ると、 "01.11.2008"に表示されます。
ありがとうございました。
try
{
DateTime sdt = DateTime.Parse(suchbegriff, new System.Globalization.CultureInfo("de-DE"));
filteredSales = filteredSales.Where(s => s.SaleDate.Value == sdt);
}
catch (FormatException e)
{
// in case we have only the year try to make a string match
filteredSales = filteredSales.Where(s => s.SaleDate.Value.Year.ToString().Equals(suchbegriff));
}
マイケル