2016-05-22 7 views
0

2番目のFor Eachには、EmailCreateDate = dtEmailCreateDateのすべてのレコードを選択したいが、レコードは見つからない。誰かがアイデアを持っていますか?Datatable Datetimeで選択

Dim dtEmailCreateDate As DateTime = Date.Now  
For Each row In _tblMandantenData.Select("Selected = True AND EmailSentDate IS NULL") 
    row("EmailCreateDate") = dtEmailCreateDate 
    DBAccess.UpdateEmailVersandInfos(row) 
Next 

Dim strQuery = String.Format("Selected = True AND EmailCreateDate = '{0}'", dtEmailCreateDate.ToString())  
For Each rowToSent In _tblMandantenData.Select(strQuery) 
    SentMail(rowToSent) 
Next 

答えて

1

あなたは(ルールが選択フィルタ式に使用するルールがある概説)Expression property of the DataColumnを見ればあなたがDateTime列にフィルタが番号記号(#)

間の日付を囲む作成されていることがわかります
DateTimeColumn = #value# 

また日付は形式MM-DD-YYYYとEmailCreateDateという名前の列が含まれている場合ので、この式で日付を確認する必要がありますあなたのコードは

Dim strQuery = String.Format("Selected = True AND " & _ 
       "EmailCreateDate = #{0}#", dtEmailCreateDate.ToString("MM-dd-yyyy"))  

もちろん、これはまだ失敗する可能性に応じてフォーマットする必要があります時間についての情報も含んでいるので、 "HH:mm:ss"時間の出力を含むように書式を変更するか、より良いBETWEEN構文を使用する

0

私の推測 - 値がDBで本当に存在しているかどうかを確認します。はいの場合、渡された値が実際にDBに格納されている値と一致しているかどうかを確認します。ミリ秒で差があっても、データは取得されません。

関連する問題