哈利 發問時間: 電腦與網際網路程式設計 · 2 0 年前

關於asp修改資料的語法

資料庫如果說要修改資料的話我寫的語法是這樣,而且執行也沒錯

以下是要改資料的程式:

<input type="text" value="<%=rs.Fields("msgname")%>" name="msgna>

<input type="text" value="<%=rs.Fields("msgtitle")%>" name="msgti">

<input type="text" value="<%=rs.Fields("msgmsg")%>" name="msgms">

以下是輸出後,要修改的程式:

C1=request("msgna")

C2=request("msgti")

C3=request("msgms")

set cmd=createobject("adodb.command")

sql="Update 留言版 Set msgtitle='"& C2 &"',msgmsg='"& C3 &"' where msgname='"& C1 &"'"

cmd.commandtext=sql

cmd.activeconnection=conn

cmd.execute

但這個寫法有個缺點

因為修改時是按照c1的東西去對照修改的東西的

就是說如果我把c1這個欄位在修改的時候也改掉了的話

程式會找不到c1原本的值,就會不能做修改

所以只能修改c2,c3的值

但其實我本來就是要設定為只能修改c2.c3

我實在想不出有什麼方法可以讓c1顯示出來,而且有 name="msgna"

不然在修改程式的時候會找不到c1

不知道有沒有人知道有什麼方法可以把 rs.Fiedls("msgname")顯示出來,而且有名字,但是不能做修改

感謝大家

這次的問題寫的有點亂,而且這次的問題不太好表達,很抱歉 ^^||

3 個解答

評分
  • 匿名使用者
    2 0 年前
    最佳解答

    <input type="text" value="<%=rs.Fields("msgname")%>" name="msgna" readonly > 加上readonly屬性就代表是「唯讀」的意思。這樣使用者就只看的到吃不到了。===========================================================下次建議你設計資料表的時候,給個自動編號的欄位,這樣就可以找出具有主鍵值的where條件,而且一般自動編號的用意也是無法讓使用者任何變更。這樣往後下上述那個例子的SQL時,這樣做<input type="hidden" value="<%=rs.Fields("msg_id")%>" name="msg_id">msg_id=request("msg_id")sql="Update 留言版 Set msgtitle='"& C2 &"',msgmsg='"& C3 &"' where msg_id='"& msg_id &"'"一方面 type 設hidden表面上還是有記錄這個ID編號值,但使用者看不到。而且你做更新資料的動作時,因為使用者看不到這個鍵值,也不用擔心會修改到這個值。

    參考資料: 二姐
  • 匿名使用者
    6 年前
  • 2 0 年前

    <input type="text" value="<%=rs.Fields("msgname")%>" name="msgna disable>

    加個disable就可以了

還有問題?馬上發問,尋求解答。