台灣最大程式設計社群網站
線上人數
2204
 
會員總數:246574
討論主題:190030
歡迎您免費加入會員
討論區列表 >> MS SQL >> 新增資料一直出錯
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
新增資料一直出錯
價值 : 0 QP  點閱數:1401 回應數:7
樓主

輝夜
初學者
136 200
2196 225
發送站內信

我想用Asp表單新增一筆資料到資料表..
有一個資料表叫TB_BadWords..
裡面有兩欄AutoID和BadWord
下面程式可以跑..但資料都進不去...
且會一直跑到下面的新增有誤的程式...
請問一下是不是有問題..還是Sql連結錯誤?
<% 
   QADB = "Driver={SQL Server};Server=?????;UID=?????;PWD=??????"
   Set conn = Server.CreateObject("ADODB.Connection")
   conn.open QADB
%>
<% 
on error resume next 
If Request("Edit")="儲存" then 
 '檢查使用者是否輸入姓名與討論主題
 IF (Request("BadWord")="") then %>
        <SCRIPT Language=javaScript>
         alert('請輸入文字!')
         //返回上一頁
            history.back();
          </Script>  <%
   Response.End
  else
     '取得SerialNo號碼
      Set rs = conn.Execute("select max(AutoID) from TB_BadWords")
           if isnull(rs("0")) then
                Max=1        
           else   
            Max=rs(0)+1
        end if 
        
         '新增進資料庫   
       Sql = "Insert Into TB_BadWords Values(" & Max& ",'"+Request("BadWord")+"')"
       conn.execute sql
        
        if conn.Errors.Count>0 then%> 
            <SCRIPT Language=javaScript> 
                alert("新增有誤")
                    history.back(); 
            </Script>     <%  
            Response.end
        end if 
       '將網頁導回主畫面,並顯示有關這次發佈的主題文章
       Response.Redirect "default.asp"  
   end if
 end if%>

本篇文章發表於2002-12-17 10:21
1樓
最有價值解答

Allen
捐贈 VP 給 Allen 檢舉此回應
請你將程式中
on error resume next 

取消,以便看到確實的行號及原因,比較好解決
本篇文章回覆於2002-12-17 10:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

輝夜
檢舉此回應
錯誤類型:
ADODB.Recordset (0x800A0CC1)
在所要求名稱或序數的相關集合中找不到物件。

POST Data:
BadWord=fgdfg&Edit=%C0x%A6s 

這下更絕了...連資料庫都開不到...
可是顯示頁卻開的起來..
明明就是一樣的編碼QQ
本篇文章回覆於2002-12-17 10:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

Allen
捐贈 VP 給 Allen 檢舉此回應
看起來
if isnull(rs("0")) then
是錯的
你要不要改成
if isnull(rs(0)) then
試試看
本篇文章回覆於2002-12-17 10:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

輝夜
檢舉此回應
看來不是那問題..
應該是資料庫連結問題..
儲存不進去...
說清楚點..
我有個表單只有一格欄位輸入..名稱為BadWord
按下按鈕後就新增一筆資料...
會不會是因為我資料表欄位跟表單欄位指定上問題...
上面這樣寫好像怪怪的..
(對不起..我只是個新手QQ)
本篇文章回覆於2002-12-17 10:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

Allen
捐贈 VP 給 Allen 檢舉此回應
我想, 你還是改一下我剛才說的,因為那應該是錯誤的寫法,但如果改完還有錯,可能是你的錯誤不止一個
Sql = "Insert Into TB_BadWords Values(" & Max& ",'"+Request("BadWord")+"')"
你再改成
Sql = "Insert Into TB_BadWords(在這裡指明欄位) Values(" & Max& ",'"+Request("BadWord")+"')"
如果你的欄位順序不對,也會有誤, 此外,若欄位為"自動編號", 新增記錄時, 你是不必給欄位值的
本篇文章回覆於2002-12-17 11:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

輝業
檢舉此回應
我把他改成這樣了..
'設定新增紀錄資料
 Fields = Array("BadWord") 
 Values=Array("'"&Request("BadWord")&"'")
這樣就可以新增成功了^^
本篇文章回覆於2002-12-17 11:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

Allen
捐贈 VP 給 Allen 檢舉此回應
那麼,改成
Sql = "Insert Into TB_BadWords(BadWord) Values(" & "'" &  Request("BadWord")  & "')"
應該也就對了, 看來你真的有自動跳號的欄位
有空時,再回頭學一下SQL Statement, 以後就比較不會出錯了


本篇文章回覆於2002-12-17 11:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.