2011-12-09 10 views
2

私のウェブサイトのログイン認証は、生年月日の3つのパラメータに基づいています。 DatePickerは、日付を選択するためにユーザーに提供されます。日付がデータベースに保存される形式はMM/dd/yyyyです。LinqでMM/dd/yyyy形式のデータを取得する方法

データベースのレコードがMM/dd/yyyyであり、ビューからコントローラに渡された値がdd/mm/yyyy.Henであるため、Linqクエリは結果を返さない出力が得られません。

以下は、私がコントローラでやっていることの私のコードです。また

[HttpPost] 
     public ActionResult Login(LoginTable log) 
     { 
      var login = from a in db.LoginTables 
         where a.DOB== log.DOB 
         select a; 
     } 

私は

var login = from a in db.LoginTables 
          where a.DOB== log.DOB.toString("MM/dd/yyyy") 
          select a; 

が、その与えるエラー(過負荷法 'のToString()' 1つの引数がかかります)

私は何ができるのを試してみましたか?

+3

あなたは、文字列としてデータベースに日付を格納されています

は単に持っていない理由logがあなたのメソッドのパラメータであることを考えると? – ChrisF

答えて

2

これが失敗する理由は、LINQがSQL構文に変換され、SQLにToStringに相当するものがないからです。

[HttpPost] 
public ActionResult Login(LoginTable log) 
{ 
    string DOBString = log.DOB.ToString("MM/dd/yyyy"); 

    var login = from a in db.LoginTables 
       where a.DOB == DOBString 
       select a; 
} 
+1

データベース内のDOB列の定義は、DateTimeです。 DateTime DOBStringおよびString DOBStringを使用して試行しました。 同じ問題( 'ToString()'メソッドのオーバーロードはありません) –

関連する問題