2016-09-05 6 views
0

私はこれを動作させることはできません。LinQからSQLを使用してテーブルにデータが存在するかどうかをチェックする方法

変数d =は、フォームからDateTimeデータを解析します。

変数id =は、私のフォームから主キーを解析します。

ボタンは、以下のコードをクリックしている場合、私は自分のコードをテストし、日付が今日であるIDのレコードがあるかどうそれは、更新部分他のレコードが挿入されます実行します

bool flag = db.tbl_payrolls.Any(p => p.dDate == d && p.emp_id == id); 
      if (flag) 
      { 
       MessageBox.Show("UPDATE"); 
      } 
      else 
      { 
       MessageBox.Show("INSERT"); 
      } 

を実行します。

+3

''「レコードがIDにあるかどう日付が今日であるところ、それが更新部分他のレコードが挿入されます実行されます」 - それは何、このコードではありません*する*をする*は何ですか?何が問題なのですか? – David

+0

'dDate'は、時刻部分を含むdatetimeまたは日付だけを保存しますか? –

+0

@Davidはいそれは達成したいことですが、データを持つ日付のIDを入力すると、更新セクションを通過する必要がありますが、INSERTセクションを通過するだけです –

答えて

0

あなたの列には時刻部分も含まれており、dはで、日付部分のみ(コメント付き)はp.dDate == dでフィルタリングできません。

あなたは、このアプローチを使用することができます。

DateTime fromDt = d.Date; 
DateTime toDt = d.Date.AddDays(1); 

bool flag = db.tbl_payrolls.Any(p => p.emp_id == id 
           && p.dDate >= fromDt && p.dDate < toDt); 
+0

こんにちはMr.Tim datetimeが日付のみを格納するのか、日付を格納するのかを質問します。私の答えは、datetimeが日付と時刻を格納することです。サンプル出力は次のとおりです:2016-09-04 00:00:00.000 –

関連する問題