asp的sql语句查询计算问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 12:22:02
例子:
1.一个列表菜单,有六个选项,具体代码为:

<select name="fbdw" id="fbdw">
<option value="0" selected="selected">选发包单位</option>
<option value="发包1">发包1</option>
<option value="发包2">发包2</option>
<option value="发包3">发包3</option>
<option value="发包4">发包4</option>
<option value="发包5">发包5</option>
<option value="发包6">发包6</option>
</select>

2.选择其中一个值进行查询计算,查询代码为:

<% dim objconn,id,objRS
id = request("fbdw")
Set objConn = Server.CreateObject("Adodb.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db.mdb")& ";" '连接数据库, db.mdb是数据库名
Set objRS = objConn.Execute("SELECT sum(hetonge) FROM jiesuan where fbdw='"&id&&q

如果用了SQL中用了合计函数,那查询结果总是有记录的,所以不能用if objRS.eof来判断,应该用
If IsNumeric(objRS(0)) Then
sum=objRS(0)
Else
sum=0
End If
Response.Write formatnumber(sum,2,-1,-1,0) '输出统计后的数字

Response.Write formatnumber(objRS(0),2,-1,-1,0) '输出统计后的数字

改为
if objRS.eof then
sum=0
else
sum=cstr(objRS(0))
end if
Response.Write formatnumber(sum,2,-1,-1,0) '输出统计后的数字

出现错误的主要原因就是, 你用了下面的这句.
Response.Write formatnumber(objRS(0),2,-1,-1,0)

objRS 查询没有结果时, 却把 objRS(0) 当做参数传递. 自然会出现错误.

修改的方法就是先判断, 查询有无结果.也就是recordcount >0 时,再用这个结构. 就可搞定问题.否则提示无记录.

Response.Write formatnumber(objRS(0),2,-1,-1,0) 有问题
改成
if objRS.eof then
sum=0
else
sum=cstr(objRS(0))
end if
Response.Write formatnumber(sum,2,-1,-1,0)
就行了,你再试试