自己要崩溃了,关于数据修改的问题。。

麻烦大家了,

自己在学习中做了一个简单数据库,可是做到其中的提取数据,修改后更新一处就怎么也更新不了,自己实在是看不出问题出在哪,只好麻烦大家看看了。

测试地址:
http://cx.cxyouth.net/ls/admin_view.asp
点击:修改数据
转到:http://cx.cxyouth.net/ls/Update_id.asp
在输入你要修改的学生编号: 那输入1-15、19-22的都有纪录。
---------------
以下是更新页面中的源代码:

updata.asp

1   
2'Account = Request.FORM("Account")   
3'Pwd = Request.FORM("Pwd")   
4id = Request.FORM("id")   
5  
6'取表单数据   
1   
2  
3Dim ShowSQL   
4ShowSQL="select * from user where id=" & id   
5SET ShowTable=dbconnection.EXECUTE(ShowSQL)   
6  
7'建立SQL查询语句,查询“客户”数据表中客户编号为输入的ID的所有记录。   
8'将执行结果记录在变量ShowTable中。   
9  
1<html> <head>
2<title>ShowTable</title>
3<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
4</head>
5<body>
6<div align="center">
7<form action="update_view.asp" method="post" name="showtable">
8<table border="0" width="63%">
9<tr>   

DO WHILE NOT ShowTable.EOF

1<!--使用do while ... loop循环保证取到所有符合条件的记录。-->
2<td width="46%">
3<div align="left">姓名:</div>
4</td>
5<td width="54%">
6<input ```"="" name="ID" size="20" type="hidden" value="```
7=ShowTable(" 客户编号")=""/>   

'sql="Select * From 用户 where 客户编号='"&amp;客户编号&amp;"'"
'if rs.eof then
'Response.Write "<html><body><center><font size="5">没有这个客户,请查正<p>"
'Response.Write "<a href="update.htm">返回重输</a>"
'Response.Write "</p></font></center></body></html>"

 1<!--这里用到一个小技巧,使用隐藏字段来传递数据,因为下一个操作需要使用这个ID号去更新记录,可以使用其它的方法,比如环境变量。相比较使用隐藏字段比较简单。 -->
 2<input ```"="" name="name" name")="" size="20" type="text" value="```
 3=ShowTable("/>
 4</td>
 5</tr>
 6<tr>
 7<td width="46%">性别:</td>
 8<td width="54%">
 9<!--   
10<input type="text" name="sex" size="20" value="```
11=ShowTable("sex")
12```">   
13\-->
14</td>
15</tr>
16<tr>
17<td width="46%">
18<div align="left">年龄:</div>
19</td>
20<td width="54%">
21<input ```"="" age")="" name="age" size="20" type="text" value="```
22=ShowTable("/>
23</td>
24</tr>
25<tr>
26<td valign="top" width="46%">电话:</td>
27<td width="54%">
28<input ```"="" name="tel" size="20" tel")="" type="text" value="```
29=ShowTable("/>
30</td>
31</tr>
32<tr>
33<td height="15"><br/>   
34说明:   
35<div align="left"></div>
36</td>
37<td height="15">
38<textarea cols="60" name="com" rows="15">```
39=ShowTable("com")
40```</textarea>
41<!--以上一句的作用是读取com 那个中的数据.注意它的写法和其它读取文本域中的数据的写法不同 -->
42</td>   

ShowTable.movenext
loop

 1</tr>
 2<tr>
 3<td colspan="2" height="15">
 4<input name="Submit" type="submit" value="update"/>
 5</td>
 6</tr>
 7</table>
 8</form>
 9</div>
10</body>
11</html>
1   
2dbconnection.Close   
3Set dbconnection = Nothing   

updata_view.asp

 1   
 2dim Showname   
 3dim Showage   
 4dim Showtel   
 5dim Showcom   
 6  
 7id = Request.FORM("id")   
 8Showname = Request.FORM("name")   
 9'sex = Request.FORM("sex")   
10Showage = Request.FORM("age")   
11Showtel = Request.FORM("tel")   
12'Showcom = Request.FORM("com")   
13'取得表单中的数据,其中ID就是上一步的隐藏字段传递过来的。   
 1   
 2  
 3Dim SQL   
 4SQL = "Update user " & "Set " & "name="   
 5SQL = SQL & "'" & Showname & "'" & ", "   
 6SQL = SQL & "age="   
 7SQL = SQL & "'" & Showage & "'" & ", "   
 8SQL = SQL & "tel="   
 9SQL = SQL & "'" & Showtel & "'" & ", "   
10'SQL = SQL & "com="   
11'SQL = SQL & "'" & Showcom & "'"   
12SQL = SQL & " where id=" & id   
13  
14'建立SQL更新操作语句,更新所有字段。应与数据库一致。注意:在“客户”和“set”后面有个空格,where前面也有一个空格。   
15  
16dbconnection.Execute SQL   
17  
18'执行SQL操作。然后告诉用户更新成功。也可以使用Response.Redirect方法导向别的页面。   
19  
20Response.Write "

<html><body><center><font size="5">数据已经更新!<p>"
Response.Write "<a href="admin_view_access.asp">查看数据</a>"
Response.Write "</p></font></center></body></html>

1"   
2Response.End   
3dbconnection.Close   
4Set dbconnection = Nothing   

-----------
conn.asp源码
<%
dim conn
dim connstr
dim dbconnection

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

你的“AGE”字段是整型的吧?


SQL = SQL & "'" & Showage & "'" & ", "
改成
SQL = SQL & "" & Showage & "" & ", "

应该就可以了。
---------------------------------------------------------------

 1<html> <head>
 2<title>ShowTable</title>
 3<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
 4</head>
 5<body>
 6<div align="center">
 7<form action="update_view.asp" method="post" name="showtable">
 8<table border="0" width="63%">
 9<tr>
10<!--使用do while ... loop循环保证取到所有符合条件的记录。-->
11<td width="46%">
12<div align="left">姓名:</div>
13</td>
14<td width="54%">
15<input name="ID" size="20" type="hidden" value=""/>   
16这是你的页面代码? ▲没有ID值,所以你修改不了   
17<!--这里用到一个小技巧,使用隐藏字段来传递数据,因为下一个操作需要使用这个ID号去更新记录,可以使用其它的方法,比如环境变量。相比较使用隐藏字段比较简单。 -->
18<input name="name" size="20" type="text" value="m"/>
19</td>
20</tr>
21<tr>
22<td width="46%">性别:</td>
23<td width="54%">
24<!--   
25<input type="text" name="sex" size="20" value="False">   
26\-->
27</td>
28</tr>
29<tr>
30<td width="46%">
31<div align="left">年龄:</div>
32</td>
33<td width="54%">
34<input name="age" size="20" type="text" value="3"/>
35</td>
36</tr>
37<tr>
38<td valign="top" width="46%">电话:</td>
39<td width="54%">
40<input name="tel" size="20" type="text" value="6"/>
41</td>
42</tr>
43<tr>
44<td height="15"><br/>   
45说明:   
46<div align="left"></div>
47</td>
48<td height="15">
49<textarea cols="60" name="com" rows="15"></textarea>
50<!--以上一句的作用是读取com 那个中的数据.注意它的写法和其它读取文本域中的数据的写法不同 -->
51</td>
52</tr>
53<tr>
54<td colspan="2" height="15">
55<input name="Submit" type="submit" value="update"/>
56</td>
57</tr>
58</table>
59</form>
60</div>
61</body>
62</html>

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

以上是你修改首页生成的html代码!
我查看了源代码时发现你的ID 隐藏字段里没有值
所以你在下一页面的Request.form("ID")接收不到:)

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

如 Andyken(浪荡闲人 Java学习中:) 所说,你的隐藏的ID值为空。

其实有个比较老土的调试方法是在update.asp页面里面先输出SQL语句,不进行数据库操作,把输出的SQL语句COPY到SQLSERVER的企业管理器里面执行一下。
---------------------------------------------------------------

Dim SQL
SQL = "Update user " & "Set " & "name="
SQL = SQL & "'" & Showname & "'" & ", "
SQL = SQL & "age="
SQL = SQL & "'" & Showage & "'" & ", "
SQL = SQL & "tel="
SQL = SQL & "'" & Showtel & "'" & ", " <--这里多了个逗号
'SQL = SQL & "com="
'SQL = SQL & "'" & Showcom & "'"
SQL = SQL & " where id=" & id

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

如果你对sql语句不熟悉的话建议你用数据集rs
like this:
Response.write trim(request.form("id"))
sql="select * from user where id="&trim(request.form("id"))
rs.open sql,Conn,1,3
'''''''''''''''''''''''''next is update datas' value
rs("name")=Showname
rs("age")=Showage
rs("tel")=Showtel
rs.update
rs.close
s

Published At
Categories with Web编程
Tagged with
comments powered by Disqus