熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

asp根據表單自動生成sql語句的函數

2013-11-13 10:31:13  來源: .NET編程 

  每次在操作數據庫的時候最煩的就是根據表單提交的內容寫sql語句特別是字段比較多的時候很麻煩動不動就容易寫錯所以我就寫了下面的生成sql語句的函數用了用覺得還可以

  程序代碼


  <%
========以下所有函數都沒有加入容錯機制所以一定要保證參數的正確性========
================參數說明================
此Function返回的是插入數據的sql語句
注意使用此Function必須使form裡的字段名和數據庫裡的字段名一致
並且按鈕不能為submit要為button通過JavaScript的submit方法提交表單
objForm必須為requestForm
tbName為插入數據的表名
numStr為不需要用單引號引起來的字段字段之間用逗號()分割沒有請用代替
=======================================
Function insertStr(objFormtbNamenumStr)
dim tbField()
dim tbfieldVal()
i=
for each objItem in objForm
redim preserve tbField(i)
tbField(i)=objItem
redim preserve tbfieldVal(i)
numPos=instr(numStrobjItem)
if numPos<> then
tbfieldVal(i)=trim(objForm(objItem))
else
tbfieldVal(i)=&trim(objForm(objItem))&
end if
i=i+
next
insertStr=insert into &tbName&(&join(tbField)&) values(&join(tbfieldVal)&)
End Function

  ===================參數說明=========================
此Function返回的更新數據的sql語句
注意使用此Function必須使form裡的字段名和數據庫裡的字段名一致
並且按鈕不能為submit要為button通過Javascript的submit方法提交表單
objForm必須為requestForm
tbName為更新數據的表名
whereField為更新的條件字段有多個請用()分割
whereJoin為更新的條件字段有多個時設置是and還是or
numStr為不需要用單引號引起來的字段字段之間用逗號()分割沒有請用代替
===================================================
Function updateStr(objFormtbNamewhereFieldwhereJoinnumStr)
    dim setFieldVal()
    dim whereStrArr()
    i=
    t=
    for each objItem in objForm
        wherePos=instr(whereFieldobjItem)
        if wherePos= then
            redim preserve setFieldVal(i)
            numPos=instr(numStrobjItem)
            if numPos<> then
                setFieldVal(i)=objItem&=&trim(objForm(objItem))
            else
                setFieldVal(i)=objItem&=&trim(objForm(objItem))&
            end if
            i=i+
        else
            redim preserve whereStrArr(t)
            numPos=instr(numStrobjItem)
            if numPos<> then
                whereStrArr(t)=objItem&=&trim(objForm(objItem))
            else
                whereStrArr(t)=objItem&=&trim(objForm(objItem))&
            end if
            t=t+
        end if
    next
    wherePos=instr(whereField)
    if wherePos<> then
    whereStr= where &join(whereStrArr &whereJoin& )
    else
    whereStrArray=whereStrArr
    whereStr= where &whereStrArray()
    end if
    updateStr=update &tbName& set &join(setFieldVal)&whereStr
End Function
==============參數說明=================
此Function返回更新數據的sql語句
只是更新條件不是通過form提交過來的比如session等
conditions為更新的條件
numStr為不需要用單引號引起來的字段字段之間用逗號()分割沒有請用代替
======================================
Function updateStr(objFormtbNameconditionsnumStr)
    dim setFieldVal()
    i=
    for each objItem in objForm
        redim preserve setFieldVal(i)
        numPos=instr(numStrobjItem)
        if numPos<> then
            setFieldVal(i)=objItem&=&trim(replace(objForm(objItem)))
        else
            setFieldVal(i)=objItem&=&trim(replace(objForm(objItem)))&
        end if
        i=i+
    next
    updateStr=update &tbName& set &join(setFieldVal)& where &conditions
End Function


From:http://tw.wingwit.com/Article/program/net/201311/13880.html
  • 上一篇文章:

  • 下一篇文章:
  • Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.