2012-03-28 2 views
0

это мой существующий код:Использование массивов для обновлений в Visual Basic

DBConn.BeginTrans 
        strSQL = "DELETE tblAvailable WHERE " 
     strSQL = strSQL + "(intResortID = " + Session("TypeID") + ")" 
     strSQL = strSQL + " AND (dtm BETWEEN CONVERT(DATETIME,'" + cstr(Year(dtmStart)) + "-" + cstr(Month(dtmStart)) + "-" + cstr(Day(dtmStart)) + "', 102)" 
     strSQL = strSQL + " AND CONVERT(DATETIME,'" + cstr(Year(dtmEnd)) + "-" + cstr(Month(dtmEnd)) + "-" + cstr(Day(dtmEnd)) + "', 102))" 


     'SY SINGH 
     'Add code to only delete out room types contained in the spreadsheet 
     Dim i 
     strSQL = strSQL & "AND (strRoomType='" & strRooms(0) & "'" 
     For i = 1 to m_Rooms 
      strSQL = strSQL & " OR strRoomType='" & strRooms(i) & "'" 
     next 
     strSQL = strSQL & ")" 

Я хочу изменить это сделать обновление вместо установки curprice где strRoomType равно массив номеров.

это то, что я придумал до сих пор

strSQL = "Update tblAvailable set curprice ="+ FixNumber(curprice (intCurrentData)) 
    response.Write(strSQL) 
    strSQL = strSQL +"WHERE intResortID = " + Session("TypeID") 
    response.Write(strSQL) 
    strSQL = strSQL + " AND dtm BETWEEN CONVERT(DATETIME,'" + cstr(Year(dtmStart)) + "-" + cstr(Month(dtmStart)) + "-" + cstr(Day(dtmStart)) + "', 102)" 
    response.Write(strSQL) 
    strSQL = strSQL + " AND CONVERT(DATETIME,'" + cstr(Year(dtmEnd)) + "-" + cstr(Month(dtmEnd)) + "-" + cstr(Day(dtmEnd)) + "', 102)" 
    response.Write(strSQL) 
    dim i 

    strSQL = strSQL + " AND (strRoomType='" & strRooms(0) & "'" 
    response.Write(strSQL) 
    For i = 1 to m_Rooms 
    strSQL = strSQL & " OR strRoomType='" & strRooms(i) & "'" 
    response.Write(strSQL) 
    next 
    strSQL = strSQL & ")" 
    response.Write(strSQL) 

    DBConn.Execute strSQL 

это ошибка я получаю:

dtm'dtm' OR strRoomType='obeqvb'dtm' OR strRoomType='obeqvb') 
Microsoft OLE DB Provider for SQL Server error '80040e14' 

Incorrect syntax near 'obeqvb'. 

/upload_excel_v3.asp, line 230 

obeqvb мой strroomtype и ЦМР моя дата

ответ

2

Вы должны избегать каких-либо отдельных кавычек в ваших значениях, удваивая их вверх

'my'roomtype должен быть 'my''roomtype'

И вы лучше использовать where strRoomType in(...) вместо «или»

+0

Делая это, я был в состоянии найти фактическую ошибку, был в листе первенствовать, который загружает на страницу осины. Спасибо за это! – user1270384

Смежные вопросы