2011-12-19 146 views
0

我正在嘗試使用DataView RowFilter過濾數據視圖。我想篩選出基於一個柱檢驗兩個日期值數據:「00」運算符後缺少操作數

Dim dtFuture As Date = DateAdd(DateInterval.Month, 6, Today) 
dv.RowFilter = "ValidUntil >" & dtFuture.ToString & "AND ValidUntil > " & Today.ToString 

我收到錯誤Syntax error: Missing operand after '00' operator.。不知道我是否以正確的方式進行。

+0

的,什麼是錯誤? – Simon 2011-12-19 14:08:25

+0

語法錯誤:'00'運算符後缺少操作數。 – Joshua 2011-12-19 14:10:06

回答

5

我認爲你需要用單引號中dtFuture值:

Dim dtFuture As Date = DateAdd(DateInterval.Month, 6, Today) 
dv.RowFilter = "ValidUntil >'" & dtFuture.ToString() & "' AND ValidUntil > '" & Today.ToString() & "'" 

的ToString也應該有括號,你需要前和一個空格。

+0

這對我來說似乎沒問題,但更好地使用文化不變DateTime格式,請參閱下面的答案... – eFloh 2011-12-19 14:13:15

+0

@eFloh - 是的你的權利。 – 2011-12-19 14:14:28

+1

正如eFloh在另一篇文章中提到的,你實際上可以排除任何沒有參數的方法的括號。所以你不需要.ToString()。 .ToString有效。 – 2011-12-19 14:16:18

1

即將離開的ToString方法應該有括號例如; dtFuture.ToString()

希望這會有所幫助!

+4

在VB.NET中不可能在函數沒有參數的情況下離開缺少的東西嗎?不記得挺... – eFloh 2011-12-19 14:14:02

0

嘗試格式化dtFuture爲SQL日期,而不是使用文化依賴的ToString(使用 「#MM/DD/YYYY#」 格式)