2010-09-16 95 views
1

我有這樣的代碼的CommandText未初始化

Dim LogData As sterm.markdata = New sterm.markdata() 

Dim datelistquery As String 
Dim properdate As String 



If Session("TenHolStDateHP1") = "%" or Session("TenHolStDateHP1") = "" Then 

    If Session("passedPropId") = "" Then 

    'QUERY USED IF NO DATE SELECTED AND A PROPID HAS NOT BEEN PASSED 
    datelistquery = "SELECT DISTINCT property_id, ' - Sleeps ' + cast(number_slept as varchar) as combsleeps, number_slept FROM openquery ("+Application("hpbDsrc")+",'SELECT property_id, number_slept FROM web_details WHERE location = ''"&Session("TenChosenLocCode")&"'' AND pets_yn like ''"&Session("TenPets")&"'' AND number_slept >= ''"&Session("TenAdults")&"'' AND on_hold = ''NO'' AND booked = ''NO'' ') ORDER BY number_slept, property_id"  

    Else 

    'QUERY USED IF NO DATE SELECTED AND A PROPID HAS BEEN PASSED 
    datelistquery = "SELECT DISTINCT property_id, ' - Sleeps ' + cast(number_slept as varchar) as combsleeps, number_slept FROM openquery ("+Application("hpbDsrc")+",'SELECT property_id, number_slept FROM web_details WHERE location = ''"&Session("TenChosenLocCode")&"'' AND property_id = ''"&Session("passedPropId")&"'' AND pets_yn like ''"&Session("TenPets")&"'' AND number_slept >= ''"&Session("TenAdults")&"'' AND on_hold = ''NO'' AND booked = ''NO'' ') ORDER BY number_slept, property_id" 

    End If 

Else 

If Session("holidayduration") = "7" Then 

    If Session("passedPropId") = "" Then 

    'QUERY USED IF DATE SELECTED AND 7 NIGHTS AND A PROPID HAS NOT BEEN PASSED 
    datelistquery = "SELECT DISTINCT property_id, ' - Sleeps ' + cast(number_slept as varchar) as combsleeps, number_slept FROM openquery ("+Application("hpbDsrc")+",'SELECT property_id, number_slept FROM web_details WHERE part_full_flag = ''F'' AND location = ''"&Session("TenChosenLocCode")&"'' AND pets_yn like ''"&Session("TenPets")&"'' AND number_slept >= ''"&Session("TenAdults")&"'' AND year_week = ''"&Session("TenHolStDateHP1")&"'' AND on_hold = ''NO'' AND booked = ''NO'' ') ORDER BY number_slept, property_id" 

    Else 

    'QUERY USED IF DATE SELECTED AND 7 NIGHTS AND A PROPID HAS BEEN PASSED 
    datelistquery = "SELECT DISTINCT property_id, ' - Sleeps ' + cast(number_slept as varchar) as combsleeps, number_slept FROM openquery ("+Application("hpbDsrc")+",'SELECT property_id, number_slept FROM web_details WHERE part_full_flag = ''F'' AND location = ''"&Session("TenChosenLocCode")&"'' AND property_id = ''"&Session("passedPropId")&"'' AND pets_yn like ''"&Session("TenPets")&"'' AND number_slept >= ''"&Session("TenAdults")&"'' AND year_week = ''"&Session("TenHolStDateHP1")&"'' AND on_hold = ''NO'' AND booked = ''NO'' ') ORDER BY number_slept, property_id"  

    End If 

Else If Session("holidayduration") = "14" Then 

    theyear = Left(Session("TenHolStDateHP1"), 4) 
    theweek = Right(Session("TenHolStDateHP1"), 2) 

    If theweek < "52" then 

     theyear = theyear 

     If theweek < "10" then 
      theweek = "0" & theweek + 1 
     Else 
      theweek = theweek + 1 
     End If 

    Else 

     If (theyear = "2015" and theweek < "53") or (theyear = "2020" and theweek < "53") or (theyear = "2026" and theweek < "53") or (theyear = "2032" and theweek < "53") or (theyear = "2037" and theweek < "53") then 
      theyear = theyear 
      theweek = "53" 
     Else 
      theyear = theyear + 1 
      theweek = "01" 
     End If 


    End If 

     If Session("passedPropId") = "" Then 

     'QUERY USED IF DATE SELECTED AND 14 NIGHTS AND A PROPID HAS NOT BEEN PASSED 
     datelistquery = "SELECT DISTINCT property_id, ' - Sleeps ' + cast(number_slept as varchar) as combsleeps, number_slept FROM openquery ("+Application("hpbDsrc")+",'SELECT property_id, number_slept FROM web_details WHERE part_full_flag = ''F'' AND location = ''"&Session("TenChosenLocCode")&"'' AND pets_yn like ''"&Session("TenPets")&"'' AND number_slept >= ''"&Session("TenAdults")&"'' AND year_week in (''"&Session("TenHolStDateHP1")&"'',''"& theyear & theweek &"'') AND on_hold = ''NO'' AND booked = ''NO'' GROUP BY property_id HAVING count(property_id) > 1 ') ORDER BY number_slept, property_id" 

     Else 

     'QUERY USED IF DATE SELECTED AND 14 NIGHTS AND A PROPID HAS BEEN PASSED 
     datelistquery = "SELECT DISTINCT property_id, ' - Sleeps ' + cast(number_slept as varchar) as combsleeps, number_slept FROM openquery ("+Application("hpbDsrc")+",'SELECT property_id, number_slept FROM web_details WHERE part_full_flag = ''F'' AND location = ''"&Session("TenChosenLocCode")&"'' AND property_id = ''"&Session("passedPropId")&"'' AND pets_yn like ''"&Session("TenPets")&"'' AND number_slept >= ''"&Session("TenAdults")&"'' AND year_week in (''"&Session("TenHolStDateHP1")&"'',''"& theyear & theweek &"'') AND on_hold = ''NO'' AND booked = ''NO'' GROUP BY property_id HAVING count(property_id) > 1 ') ORDER BY number_slept, property_id" 

     End If 

Else If Session("holidayduration") = "3/4" Then 


     If Session("passedPropId") = "" Then 

     'QUERY USED IF DATE SELECTED AND 3/4 NIGHTS AND A PROPID HAS NOT BEEN PASSED 
     datelistquery = "SELECT DISTINCT property_id, ' - Sleeps ' + cast(number_slept as varchar) as combsleeps, number_slept FROM openquery ("+Application("hpbDsrc")+",'SELECT property_id, number_slept FROM web_details WHERE (part_full_flag = ''P'' or split_weeks = ''Y'') AND location = ''"&Session("TenChosenLocCode")&"'' AND pets_yn like ''"&Session("TenPets")&"'' AND number_slept >= ''"&Session("TenAdults")&"'' AND year_week = ''"&Session("TenHolStDateHP1")&"'' AND on_hold = ''NO'' AND booked = ''NO'' ') ORDER BY number_slept, property_id" 

     Else 

     'QUERY USED IF DATE SELECTED AND 3/4 NIGHTS AND A PROPID HAS BEEN PASSED 
     datelistquery = "SELECT DISTINCT property_id, ' - Sleeps ' + cast(number_slept as varchar) as combsleeps, number_slept FROM openquery ("+Application("hpbDsrc")+",'SELECT property_id, number_slept FROM web_details WHERE (part_full_flag = ''P'' or split_weeks = ''Y'') AND location = ''"&Session("TenChosenLocCode")&"'' AND property_id = ''"&Session("passedPropId")&"'' AND pets_yn like ''"&Session("TenPets")&"'' AND number_slept >= ''"&Session("TenAdults")&"'' AND year_week = ''"&Session("TenHolStDateHP1")&"'' AND on_hold = ''NO'' AND booked = ''NO'' ') ORDER BY number_slept, property_id" 


     End If 

End If 


'Query to get date in nice format 
properdate = "SELECT * FROM openquery ("+Application("hpbDsrc")+", 'SELECT starting_period from web_header WHERE year_week = ''"&Session("TenHolStDateHP1")&"'' ')" 

Dim drCode7 As DataSet = LogData.StermQ3(properdate) 

dgAvailable2.DataSource = drCode7.Tables(0).DefaultView 
dgAvailable2.DataBind() 

End If 

dd1.DataSource = LogData.StermQ3(datelistquery).Tables(0).DefaultView 
dd1.DataBind() 
dd1.Items.Insert(0, new listitem("Any location", "%")) 

而且CommandText中尚未初始化錯誤不斷顯示了在IIS事件查看器日誌

我不能複製自己的問題,但我知道,它發生任何人都可以提出任何

錯誤說,這條線發生dd1.DataSource = LogData.StermQ3(datelistquery).Tables(0).DefaultView

感謝

傑米

+1

聽起來像問題存在於'LogData.StermQ3' ... – Heinzi 2010-09-16 13:09:00

+0

我是一個新手,所以這個問題會是什麼? – 2010-09-16 13:22:02

+0

您需要發佈StermQ3()的源代碼才能告訴您。 – 2010-09-16 14:24:28

回答

0

我認爲你是在沒有一個滿足下列條件的情況:

Session("TenHolStDateHP1") = "%" 
Session("TenHolStDateHP1") = "" 
Session("holidayduration") = "3/4" 
Session("holidayduration") = "14" 
Session("holidayduration") = "7" 

既然你不初始化datelistquery到任何東西,你最終在else if似乎有可能你沒有爲這個字符串分配一個查詢,並且可以將一個空字符串傳遞給你的函數。

您可能希望將else聲明添加到您的if/else if聲明鏈的末尾作爲一個整體。你會在else語句中設置datelistquery取決於你在做什麼。