急!!有關ASP問題....(要能夠幫忙解決問題的我會送鮮花給他)

Home Home
引用 | 編輯 terry8899
2005-09-23 16:17
樓主
推文 x0
<%
set cn=server.createobject("adodb.connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath ("XX.mdb")
set rs=server.CreateObject("ADODB.Recordset")
SQL = "UPDATE action_Type SET TYPE_NM ='" ..

訪客只能看到部份內容,免費 加入會員



獻花 x0
引用 | 編輯 PeterPan
2005-09-23 16:57
1樓
  
請問你所說的「一次大量更新數筆資料」是指?

獻花 x0
引用 | 編輯 terry8899
2005-09-23 17:18
2樓
  
下面是引用PeterPan於2005-09-23 16:57發表的 :
請問你所說的「一次大量更新數筆資料」是指?

SQL = "UPDATE action_Type SET TYPE_NM ='" & request("TYPE_NM") & "' , last_User ='" & request("last_User") & "' , last_DATE ='" & request("last_DATE") & "' ,INP_User ='" & session("user_id") & "' , INP_DATE ='" & date & "' WHERE type_id like '" & request("type_id") & "'"
上述在資料庫裡面只更新一筆資料
我要的是能夠一次更新數筆

獻花 x0
引用 | 編輯 PeterPan
2005-09-23 18:36
3樓
  
用分號區隔多條SQL指令然後一次執行?

獻花 x0
引用 | 編輯 terry8899
2005-09-23 19:08
4樓
  
下面是引用PeterPan於2005-09-23 18:36發表的 :
用分號區隔多條SQL指令然後一次執行?

不..不是的
因為上述的SQL語法只能針對資料庫做單一筆更新..
我是指傳送出去後..能夠一次的將數筆資料更新
..
因為安全的問題....不能將全部的程式POST上來..SORRY.

獻花 x0
引用 | 編輯 PeterPan
2005-09-23 20:02
5樓
  
...這樣子我也看不懂問題所在 表情

獻花 x0
引用 | 編輯 terry8899
2005-09-23 20:07
6樓
  
下面是引用PeterPan於2005-09-23 20:02發表的 :
...這樣子我也看不懂問題所在 表情

抱歉!!
請教各問題...你對ASP熟悉嗎?

獻花 x0
引用 | 編輯 PeterPan
2005-09-23 20:59
7樓
  
不是很熟,只寫過登入程式而已。這裡絕對有人比我利害。

獻花 x0
引用 | 編輯 terry8899
2005-09-23 21:11
8樓
  
下面是引用PeterPan於2005-09-23 20:59發表的 :
不是很熟,只寫過登入程式而已。這裡絕對有人比我利害。

SQL = "UPDATE action_Type SET TYPE_NM ='" & request("TYPE_NM") & "' , last_User ='" & request("last_User") & "' , last_DATE ='" & request("last_DATE") & "' ,INP_User ='" & session("user_id") & "' , INP_DATE ='" & date & "' WHERE type_id like '" & request("type_id") & "'"
因為上述的語法只能夠在資料庫裡面更新一筆資料.....

獻花 x0
引用 | 編輯 PeterPan
2005-09-23 21:33
9樓
  
like似乎少了%?
例如:where id like '%animal%'
或:where id like 'the%'

獻花 x0
引用 | 編輯 唐老鴨
2005-09-23 21:53
10樓
  
我也覺得妳在request("type_id")的前後少了%的符號....
不然根據你的SQL語法....
你的WHER判斷....
like變成跟等於是一樣意思了....

獻花 x0
引用 | 編輯 terry8899
2005-09-23 22:27
11樓
  
<form action="save.asp" name="frm1" method="post">
<% for i =1 to 20%>
<input type="text" name="type_id<%=i%>"><br>
<%next %>
<input type="submit" value="send">
</form>

//** save.asp -->
...部分我省略掉了...
....
<%
set cn=server.createobject("adodb.connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath ("XX.mdb")
set rs=server.CreateObject("ADODB.Recordset")
SQL = "UPDATE action_Type SET TYPE_NM ='" & request("TYPE_NM") & "' , last_User ='" & request("last_User") & "' , last_DATE ='" & request("last_DATE") & "' ,INP_User ='" & session("user_id") & "' , INP_DATE ='" & date & "' WHERE type_id like '" & request("type_id") & "'"
rs.open SQL,cn,1,2
Response.write "<script>javascript:window.close();</script>"
%>
上面這段只能夠一次更新一筆資料...如果我要能夠一次大量更新數筆資料的話要如何做..

獻花 x0
引用 | 編輯 ziele
2005-09-24 00:42
12樓
  
依妳的判斷條件 where ... 似乎已經將條件定死了
要多筆更新 只有判斷條件有多筆符合才行吧!

獻花 x0
引用 | 編輯 terry8899
2005-09-24 01:23
13樓
  
下面是引用ziele於2005-09-24 00:42發表的 :
依妳的判斷條件 where ... 似乎已經將條件定死了
要多筆更新 只有判斷條件有多筆符合才行吧!


判斷條件有多筆符合??
能詳細說明嗎??
thanks you!!

獻花 x0
引用 | 編輯 唐老鴨
2005-09-24 04:10
14樓
  
ASP我不會...
但假設你要找到多筆資料
SQL的語法要這麼下....
譬如...
select * from 學生 where 名字 like '唐%' ('%'表零到任意多個字元,'_'表一個字元)
這樣只要姓"唐"的所有人都會符合條件.....
但你的只有where 名字 like '唐'
當然只有一個人或多個人(名字非主鍵時)的名字叫唐的人才符合....
"唐老鴨"就不會符合啦 表情 ....

獻花 x0
引用 | 編輯 PeterPan
2005-09-24 09:06
15樓
  
宣告一個陣列存放 type_id1 ~ type_id20,然後用一個 for 迴圈來組合SQL指令?

獻花 x1
引用 | 編輯 terry8899
2005-09-26 13:43
16樓
  
下面是引用PeterPan於2005-09-24 09:06發表的 :
宣告一個陣列存放 type_id1 ~ type_id20,然後用一個 for 迴圈來組合SQL指令?


謝謝你告訴我方法..感激!!
送上鮮花一朵.

獻花 x0
引用 | 編輯 terry8899
2005-09-26 13:46
17樓
  
下面是引用唐老鴨於2005-09-24 04:10發表的 :
ASP我不會...
但假設你要找到多筆資料
SQL的語法要這麼下....
譬如...
select * from 學生 where 名字 like '唐%' ('%'表零到任意多個字元,'_'表一個字元)
.......


不好意思問個問題...
為什麼你的 From:美國 | Posted:2005-09-24 04:10|
所在地是在美國??

獻花 x0
引用 | 編輯 codeboy
2005-09-26 20:04
18樓
  
下面是引用terry8899於2005-09-26 13:46發表的 :



不好意思問個問題...
為什麼你的 From:美國 | Posted:2005-09-24 04:10|
.......
因為唐老鴨大大在美國唸書阿~ 表情

獻花 x0
引用 | 編輯 terry8899
2005-09-26 23:44
19樓
  
下面是引用codeboy於2005-09-26 20:04發表的 :

因為唐老鴨大大在美國唸書阿~ 表情


在美國念哪間學校呢..
修電腦資訊方面的的嗎...

獻花 x0
引用 | 編輯 唐老鴨
2005-09-27 08:04
20樓
  
下面是引用terry8899於2005-09-26 23:44發表的 :



在美國念哪間學校呢..
修電腦資訊方面的的嗎...

這....這是程式討論區吧 表情 ....
我唸資訊的....
現在小學二年級 表情 .....

獻花 x0
引用 | 編輯 ziele
2005-09-27 17:14
21樓
  
WHERE type_id like '" & request("type_id") & "'"

如果資料庫只有一筆資料符合條件式 ,那就只能一次更新一筆,反之就可以多筆同時更新

看看SQL 語法
http://www.1keydata.com/tw/sql/sqllike.html

獻花 x0
引用 | 編輯 terry8899
2005-09-29 12:37
22樓
  
下面是引用ziele於2005-09-27 17:14發表的 :
WHERE type_id like '" & request("type_id") & "'"

如果資料庫只有一筆資料符合條件式 ,那就只能一次更新一筆,反之就可以多筆同時更新

看看SQL 語法
.......

無法顯示網頁
目前查閱的網頁無法使用。 網站可能發生技術問題或者您需要調整瀏覽器設定。

--------------------------------------------------------------------------------

請嘗試下列:

請按 [重新整理]按鈕,或者稍後再試一次。

如果在網址列輸入網址,請確定未拼錯任何資料。

要檢查您的連線設定,請按[工具]功能表,然後按[網際網路選項]。在[連線]標籤按[區域網路設定]。 設定應符合區域網路 (LAN) 系統管理員或網際網路服務提供者 (ISP) 提供的設定。
如果您的網路管理員已經啟用此功能, Microsoft Windows 將檢定並自動尋找網路連線設定。
要 Windows 尋找設定,請按 [偵測網路設定]

某些網站要求 128 位元連線安全性。按[說明]功能表中的[關於 Internet Explorer]來判定您安裝的安全性強度。
如果想連線到安全網站,請確定您的安全性設定可以支援。請按[工具]功能表,然後按[網際網路選項]。在 [進階] 標籤,捲動到 [安全性] 區段,然後檢查 SSL 2.0、SSL 3.0、TLS 1.0、PCT 1.0 的設定。
按一下 [上一頁] 按鈕會嘗試其他連結。



找不到伺服器或 DNS 錯誤
Internet Explorer

獻花 x0
引用 | 編輯 zerobennett
2005-10-12 13:28
23樓
  
先從資料庫搜尋需要更新紀錄集合然後用迴圈更新就好了
Vector Result = QueryResult("Select * form DB Where ID like %?%");
for(int i=0; i<Result.size(); i++) {
更新的動作
}
但是你必須先搜尋出你所要更新的紀錄 就是條件要很清楚
like %+AB+% 就是說 假設某欄位內的值=AABCDEF 那麼條件成立
意思就是說 只要該欄位內有出現AB則條件就成立 如果沒有加%就是等於的意思了
忘記跟你說 asp 我很久沒寫了 這是Java的寫法。(XD逃~)

獻花 x1
引用 | 編輯 shawn0919
2005-10-13 23:35
24樓
  
下面是引用terry8899於2005-09-23 22:27發表的 :
<form action="save.asp" name="frm1" method="post">
<% for i =1 to 20%>
<input type="text" name="type_id<%=i%>"><br>
<%next %>
<input type="submit" value="send">
.......

如果是依照上面的表單來看的話會送出20個type_id的欄位值是吧!
那同樣寫個迴圈去更新資料庫即可。
<%
For i = 1 to 20
SQL = "UPDATE action_Type SET TYPE_NM ='" & request("TYPE_NM") & "' , last_User ='" & request("last_User") & "' , last_DATE ='" & request("last_DATE") & "' ,INP_User ='" & session("user_id") & "' , INP_DATE ='" & date & "' WHERE type_id LIKE '" & type_id的值 & "'"
Set rs = cn.Execute(SQL)
Next
%>

獻花 x1
引用 | 編輯 terry8899
2005-10-14 14:19
25樓
  
除了上述幾種方法還有人能夠提供更多其它方式嗎??

獻花 x0
引用 | 編輯 ddmg
2005-10-15 12:39
26樓
  
當然是用廻圈囉

for next
while wend
都嘛可以用

大量的話 那你可用載入文字檔或建一個資料庫或excel...來做為資料來源



先開一載入資料來源的地方... (得到rs.(資料來源欄位"))

set conn = ServerObject("ADODB.connectoin")   '要修改資料庫ADO連結
conn.open .........

'====重覆區
while not rs.eof
來源變數 = rs.("資料來源欄位")
SQL = "update 資料表 set 修改欄位 = 來源變數 where 指定的資料列"
conn.execute(SQL)
wend
'======重覆區

這樣就OK了.....

獻花 x1