ASP更新数据库出错,求大神支一下怎么解决?
rowsCount=Csng(Request("rowsCount"))'这是传过来的数组的行数(个数)tozDate=Request("tm")'这是一个日期'获取传过...
rowsCount=Csng(Request("rowsCount")) '这是传过来的数组的行数(个数)
tozDate=Request("tm") '这是一个日期
'获取传过来的数据 存进数组
Dim bmArr()
Dim slArr()
ReDim bmArr(rowsCount)
ReDim slArr(rowsCount)
For i=0 To rowsCount-1
bmArr(i)=Request("bianma"&i)
slArr(i)=Request("sl"&i)
Next
'数据库获取数据 ,存进数组
Dim bimArr()
Dim sArr()
Dim nylArr()
Dim tzArr()
Set rs=Server.CreateObject("ADODB.Recordset")
sql="Select * from wlfaliao"
rs.open sql,conn,1,3
If Not rs.EOF Or Not rs.BOF Then
huiCounts=rs.RecordCount
ReDim bimArr(huiCounts)
ReDim sArr(huiCounts)
ReDim nylArr(huiCounts)
ReDim tzArr(huiCounts)
For i=0 To huiCounts-1
bimArr(i)=rs("bianma")
sArr(i)=rs("shuliang")
nylArr(i)=rs("nyuliao")
tzArr(i)=rs("tzriqi")
rs.MoveNext
If rs.EOF Or rs.BOF Then Exit For
Next
End If
rs.close
'更新数据库。我是想要更新数据库中 与传过来的数据相同的 "行"。nyuliao是数字。
'这里有个问题:为什么总是会更新两次,比如数据库中原有的数据nyuliao=50,我传过来的值是120。
'正常的话,数据库中的nyuliao应该等于170(更新后)才对,可是为什么会是50+120+120=290(不知道是不是更新了两次,反正数字就总是会这样)。求大神啊
'难道中毒了吗?
For i=0 To rowsCount-1
For j=0 To huiCounts-1
If bmArr(i)=bimArr(j) And tzArr(j) = tozDate Then
sql="Update wlfaliao set nyuliao='"&Csng(slArr(i))+Csng(nylArr(j))&"' where bianma='"&bmArr(i)&"' And tzriqi='"&tozDate&"'"
conn.execute(sql)
End If
Next
Next 展开
tozDate=Request("tm") '这是一个日期
'获取传过来的数据 存进数组
Dim bmArr()
Dim slArr()
ReDim bmArr(rowsCount)
ReDim slArr(rowsCount)
For i=0 To rowsCount-1
bmArr(i)=Request("bianma"&i)
slArr(i)=Request("sl"&i)
Next
'数据库获取数据 ,存进数组
Dim bimArr()
Dim sArr()
Dim nylArr()
Dim tzArr()
Set rs=Server.CreateObject("ADODB.Recordset")
sql="Select * from wlfaliao"
rs.open sql,conn,1,3
If Not rs.EOF Or Not rs.BOF Then
huiCounts=rs.RecordCount
ReDim bimArr(huiCounts)
ReDim sArr(huiCounts)
ReDim nylArr(huiCounts)
ReDim tzArr(huiCounts)
For i=0 To huiCounts-1
bimArr(i)=rs("bianma")
sArr(i)=rs("shuliang")
nylArr(i)=rs("nyuliao")
tzArr(i)=rs("tzriqi")
rs.MoveNext
If rs.EOF Or rs.BOF Then Exit For
Next
End If
rs.close
'更新数据库。我是想要更新数据库中 与传过来的数据相同的 "行"。nyuliao是数字。
'这里有个问题:为什么总是会更新两次,比如数据库中原有的数据nyuliao=50,我传过来的值是120。
'正常的话,数据库中的nyuliao应该等于170(更新后)才对,可是为什么会是50+120+120=290(不知道是不是更新了两次,反正数字就总是会这样)。求大神啊
'难道中毒了吗?
For i=0 To rowsCount-1
For j=0 To huiCounts-1
If bmArr(i)=bimArr(j) And tzArr(j) = tozDate Then
sql="Update wlfaliao set nyuliao='"&Csng(slArr(i))+Csng(nylArr(j))&"' where bianma='"&bmArr(i)&"' And tzriqi='"&tozDate&"'"
conn.execute(sql)
End If
Next
Next 展开
1个回答
展开全部
你这算法本身存在很大问题,为什么非要把客户端传来的数据和数据库中的都要先放到数组,然后再来更新?这得多花时间啊!直接更新不行吗?
rowsCount=CLng(Request("rowsCount")) '这是传过来的数组的行数(个数)
tozDate=Request("tm") '这是一个日期
Set rs=Server.CreateObject("ADODB.Recordset")
For i=0 To rowsCount-1
rs.open "select * from wlfaliao where bianma='" & request("bianma" & i) & "' And tzriqi='" & tozDate & "'",conn,1,3
if not rs.eof then
rs("nyuliao")=rs("nyuliao")+clng(request("sl" & i))
rs.update
end if
rs.close
Next
更多追问追答
追问
谢谢,可是重点不是怎么写,是我上面说的,更新错误问题,谢谢。
我传值到页面时,数据就会像我上面说的情况,可是如果我在接收传值的页面不返回,刷新的话,数据却更新正常了,这是什么原因,谢谢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询