每次操作数据库时候最烦根据表单提交内容写sql语句特别字段比较多时候很麻烦动不动就容易写错所以我就写了下面生成sql语句函数用了用觉得还可以

源代码源代码:

<%
'========以下所函数都没加入容错机制所以一定要保证参数正确性========
'================参数说明================
'此Function返回插入数据sql语句
'注意:解决此Function必须使form里字段名和数据库里字段名一致
'并且按钮不能为submit要为button通过JavaScriptsubmit办法提交表单
'objForm必须为request.Form
'tbName为插入数据表名
'numStr为不需要用单引号引起来字段字段之间用逗号()分割请用""代替
'=======================================
Function insertStr(objFormtbNamenumStr)
dim tbField()
dim tbfieldVal()
i=0
for each objItem in objForm
redim preserve tbField(i)
tbField(i)=objItem
redim preserve tbfieldVal(i)
numPos=instr(numStrobjItem)
if numPos<>0 then
tbfieldVal(i)=trim(objForm(objItem))
else
tbfieldVal(i)="'"&trim(objForm(objItem))&"'"
end if
i=i+1
next
insertStr="insert into "&tbName&"("&join(tbField"")&") values("&join(tbfieldVal"")&")"
End Function

'===================参数说明=========================
'此Function返回更新数据sql语句
'注意:解决此Function必须使form里字段名和数据库里字段名一致
'并且按钮不能为submit要为button通过Javascriptsubmit办法提交表单
'objForm必须为request.Form
'tbName为更新数据表名
'whereField为更新条件字段多个请用()分割
'whereJoin为更新条件字段多个时设置and还or
'numStr为不需要用单引号引起来字段字段之间用逗号()分割请用""代替
'===================================================
Function updateStr(objFormtbNamewhereFieldwhereJoinnumStr)
    dim setFieldVal()
    dim whereStrArr()
    i=0
    t=0
    for each objItem in objForm
        wherePos=instr(whereFieldobjItem)
        if wherePos=0 then
            redim preserve setFieldVal(i)
            numPos=instr(numStrobjItem)
            if numPos<>0 then
                setFieldVal(i)=objItem&"="&trim(objForm(objItem))
            else
                setFieldVal(i)=objItem&"='"&trim(objForm(objItem))&"'"
            end if
            i=i+1
        else
            redim preserve whereStrArr(t)
            numPos2=instr(numStrobjItem)
            if numPos2<>0 then
                whereStrArr(t)=objItem&"="&trim(objForm(objItem))
            else
                whereStrArr(t)=objItem&"='"&trim(objForm(objItem))&"'"
            end if
            t=t+1
        end if
    next
    wherePos2=instr(whereField"")
    if wherePos2<>0 then
    whereStr=" where "&join(whereStrArr" "&whereJoin&" ")
    else
    whereStrArray=whereStrArr
    whereStr=" where "&whereStrArray(0)
    end if
    updateStr="update "&tbName&" set "&join(setFieldVal"")&whereStr
End Function
'==============参数说明=================
'此Function返回更新数据sql语句
'只更新条件不通过form提交过来比如session等
'conditions为更新条件
'numStr为不需要用单引号引起来字段字段之间用逗号()分割请用""代替
'======================================
Function updateStr2(objFormtbNameconditionsnumStr)
    dim setFieldVal()
    i=0
    for each objItem in objForm
        redim preserve setFieldVal(i)
        numPos=instr(numStrobjItem)
        if numPos<>0 then
            setFieldVal(i)=objItem&"="&trim(replace(objForm(objItem)"'"""))
        else
            setFieldVal(i)=objItem&"='"&trim(replace(objForm(objItem)"'"""))&"'"
        end if
        i=i+1
    next
    updateStr2="update "&tbName&" set "&join(setFieldVal"")&" where "&conditions
End Function

2010年8月19日爱促销电脑网 开发频道