回 帖 发 新 帖 刷新版面

主题:昨天没解决的难题,大家帮帮忙!!

<!--#include file="conn.asp"-->

<script language=javascript>
function check()
{
if (document.form1.t1.value=="")
{alert("1 请输入数据!");
document.form1.t1.focus();
return false;
}

......(省略,类似)


if (document.form9.t9.value=="")
{alert("9 请输入数据!");
document.form9.t9.focus();
return false;
}

var t1=parseInt(form1.t1.value);

.......(省略 ,类似)

var t9=parseInt(form9.t9.value);

form10.t10.value=(t1+t2+t3+t4+t5+t6+t7+t8+t9)*1.25;    // 十个数的和乘以1.25得到一个数result(让result值在第十个文本框中显示)

Response.Write('form10.t10.value');//第十个文本框中显示运算结果
var result=parseFloat(form10.t10.value);//转成float 型,跟数据库的一个字段类型相同
<%
[color=FF0000]sql="update academy set aca_mark='result' where aca_time =2008"   //其中在数据库中aca_mark是float型  aca_time是char 型
set rsedit=conn.execute(sql)//把运算结果result更新进数据库[/color]
%>
}

列表的下拉菜单
<form id="form24" name="form24" method="post" action="">
  <label>
  <div align="center">
    <select name="time" size="1" id="time">
      <option value="2008">2008</option>
      <option value="2007">2007</option>
      <option value="2006">2006</option>
      <option value="2005">2005</option>
    </select>

    此代码的主要目的是输入10个数,再根据公式(t1+t2+t3+t4+t5+t6+t7+t8+t9)*1.25即十个数的和乘以1.25,得到一个数result,result的值将在第十个文本框中输出运算结果,
然后再根据下拉菜单中选的某个值(比如选2008 即08年),根据2008这个时间将result的值更新数据库

[color=800000]
我的难题(没解决的)是:[/color] 
1.读取下拉菜单的值的脚本不会写(比如想要 2008),[color=FF0000]sql="update academy set aca_mark='result' where aca_time =2008"  其中的2008用脚本 ?  来代替,希望大虾们能写出这句脚本语句[/color]
2.sql 语句有误,主要是类型出错

出错提示:

错误类型:

Microsoft OLE DB Provider for SQL Server (0x80040E07)
将数据类型 varchar 转换为 float 时出错。
/biyelunwen/admin/quality.asp, 第 143 行



各位大虾帮帮忙。。。。谢谢!我没学过asp,昨天一下午还没解决,我[em10]

回复列表 (共4个回复)

沙发

你这个result是asp程序里面的变量吧?不是SQL里面的字符串常量。

所以应该用&连接符连接SQL语句,至少应该是
sql="update academy set aca_mark=" & result & " where aca_time =2008"

板凳

result是asp程序里面的变量

我换成下面代码只能更新2008年的数据,但是我还想更新07,06,05...的数据,怎么实现?
<%
if request("ctype")="edit" then
sql="update academy set aca_mark='"&trim(request("t22"))&"' where aca_time ='2008'"
set rsedit=conn.execute(sql)
%>
<%end if %>

我用列表框的下啦菜单解决年的问题
<%
if request("ctype")="edit" then
sql="update academy set aca_mark='"&trim(request("t22"))&"' where aca_time ='"&trim(request("time"))&"'"
set rsedit=conn.execute(sql)
%>
<%end if %>

结果数据库却不更新,还是老数据,不知是那里出错了。。。大家帮帮忙!!!

先谢谢  作者:p1s

3 楼

请首先检查t22和time是否已经传输过来,建议在sql语句之前先response.write这两个变量出来
如果这两个变量都有数值,那么肯定是SQL语句有问题。我估计大多数可能是数据没能传输过来。

4 楼

测试过,变量值是对的
但是我看 sql语句也看不出什么毛病。。。愁。。

我来回复

您尚未登录,请登录后再回复。点此登录或注册