2011-05-24 73 views
1

它使用1個參數(i_index),但如果我也使用i_datum,則會出現如下錯誤:「從字符串」park_id = 100「轉換爲鍵入」Long「無效。是否可以在dataview.rowfilter中使用2個參數?怎麼樣?

Public Function detail_kalender(ByVal i_index As Int16, ByVal i_datum As Date) As DataRowView 
    Dim dv As DataView 
    Dim anyrow As DataRowView 
    dv = New DataView 

    With dv 

     .Table = myds.Tables("kalender") 
     .AllowDelete = True 
     .AllowEdit = True 
     .AllowNew = True 
     .RowFilter = "park_id = " & i_index And "datum =" & i_datum 


    End With 
    anyrow = dv.Item(0) 'geeft de eerste rij van de dataview dv 

    ' Simple bind to a TextBox control 
    dv = mydt_parken.DefaultView 
    Return anyrow 
    dv.Dispose() 
    dv = Nothing 

End Function 
+0

你是什麼'i_'前綴的意義是什麼? – 2011-05-24 14:47:21

+0

如果類型是整數,我通常使用i! – Rachid 2011-05-25 09:23:30

+0

那你爲什麼在i_datum上使用它? – Smudge202 2011-05-25 10:02:55

回答

0

看着你有沒有爲行過濾器的代碼,這將轉化爲:

.RowFilter = "park_id = 100datum = something" 

通知缺乏的park_id與一場之間的空間。您還需要添加「和」(我想?)

嘗試:

.RowFilter = String.Format("park_id = {0} and datum = {1}", i_index.Tostring, i_datum.ToString) 

您可能需要鼓搗這包括根據類型數據的撇號(即改變

... and datum = **'**{1}**'** 

如果它是一個字符串)

編輯:在迴應您的評論。

看看this page的一些有用的提示。對於使用#符號的日期。

.RowFilter = String.Format("park_id = {0} and datum = #{1}#", i_index.Tostring, i_datum.ToString) 

編輯:在回答你的第二個評論(出現FormatException「字符串未被識別爲有效的DateTime。」):

這是一個有點棘手。我會列出一個可能的快速解決方案,但決不是最好的解決方案。

Dim customDateFormat As String = "MM/dd/yyyy hh:mm:ss" 
.RowFilter = String.Format("park_id = {0} and datum >= #{1}# and datum <= #{2}#", 
          i_index.ToString, 
          New DateTime(i_datum.Year, i_datum.Month, i_datum.Day, 0, 0, 0).ToString(customDateFormat), 
          New DateTime(i_datum.Year, i_datum.Month, i_datum.Day, 23, 59, 59).ToString(customDateFormat)) 

基本上,有機會,當你比較你的日期對日期時間在數據庫中,你要忽略的時間? (在這裏做一個假設)。這樣做的一種方法是將您的數據庫數據與日期進行比較,確保它在00:00 AM到23:59:59 PM之間。

我已經包含一個customDateFormat字符串,如果需要可以篡改,以反映您的語言環境。我知道日期常量忽略語言環境,但我不知道它在RowFilter中作爲一個字符串做了什麼,以及數據庫語言環境是否對它有任何影響。如果上述不起作用,您可以更改日期格式字符串以匹配您的語言環境,以查看是否有幫助。

+0

park_id是一個整數,而i_datum是日期類型!那麼,那麼語法是什麼? – Rachid 2011-05-24 14:06:53

+0

如果我使用這些解決方案,我得到一個formatException「字符串未被識別爲有效的DateTime。」因爲我的數據庫中的類型是dateTime!你有這個解決方案嗎? – Rachid 2011-05-25 09:34:39

0

嘗試使用,而不是:

.RowFilter = "park_id = " & i_index & " And datum =" & i_datum 
相關問題