注册 登录
编程论坛 ASP技术论坛

asp+access 怎么读取一列值地总和

a190066 发布于 2010-08-19 05:24, 977 次点击
表:scunews  段: nos3   数字值:1

以下代码可以把“nos3”整个段“1”相加并显示总和,但要把nos3设为文本型,数字型就不行,请问高手,数字型怎么读取一列值----相同数字的总和?如何表达?也就是说,段: nos3 有100个“1”怎样计算?谢谢!
<%
sql="select nos3 as sumval from scunews where nos3='1' "
rs.open sql,conn,1,1
rs("sumval")
%>
4 回复
#2
cnfarer2010-08-19 07:27
sql="select sum(nos3) as sumval from scunews where nos3=1 "
#3
a1900662010-08-19 13:08
回复 2楼 cnfarer
sql="select sum(nos3) as sumval from scunews where nos3=1 "
一样只能文本型字有效,数字型字段无法统计
#4
gupiao1752010-08-19 18:47
没道理呵,应该数字型比较合适,怎么变成文本型的了?
#5
a1900662010-08-20 01:55
问题已解决,十分感谢高手指点.现把代码贴上,供大家参考。   
<%
   dim conn   
   dim connstr
   on error resume next
   connstr="DBQ="+server.mappath("../../#User.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
   set conn=server.createobject("ADODB.CONNECTION")
   if err then
      err.clear
   else
        conn.open connstr
        if err then
           err.clear
        end if
   end if
%>
用上面方法打开数据库,“nos”可用以设为文本型就可以计算,那怕是中文件字,但不能统计数字型,用sql="select sum(nos3) as sumval from scunews where nos3=1 "一样不能计算数字型“nos”.还有用下面的也是不行.

<% set rs=server.createobject("adodb.recordset")
sql="select * from users where nos='1' "
rs.open sql,conn,1,1
response.write rs.recordcount
%>

以下代码可以计算数字型字段“nos”,一定要用最后一种方法打开数据库。用上面第一种就不行。
<%
set rs=server.CreateObject("adodb.recordset")
sql="select id from scunews where nos1=1"
rs.open sql,cn,1,1
s01=rs.recordcount
response.write rs.recordcount
rs.close
set rs=nothing
%>

<%
Response.Buffer=True

'''''''''''''''''''''''''''''' Access数据库 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
datapath    =""      '数据库目录的相对路径
datafile    ="../../mdb/#User.mdb"      '数据库的文件名
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(""&datapath&""&datafile&"")
'Connstr="DBQ="&server.mappath(""&datapath&""&datafile&"")&";DRIVER={Microsoft Access Driver (*.mdb)};"
SqlNowString="Now()"
SqlChar="'"
ver="5.13a"
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

On Error Resume Next
Set cn=Server.CreateObject("ADODB.Connection")
cn.open ConnStr
set rs=Server.CreateObject("ADODB.Recordset")
If Err Then
err.Clear
Set Conn = Nothing
Response.Write "数据库连接出错,请检查连接字串。"
Response.End
End If
%>
1