繁体   English   中英

在Visual Basic中使用数组进行更新

[英]Using arrays for updates in 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,dtm是我的约会对象

您应该通过将它们加倍来逃避值中的任何单引号

'my'roomtype应该是'my''roomtype'

你最好使用where strRoomType in(...)而不是“或”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM