login register Sysop! about ME  

2022년 11월 11일 10시 51분 00초,     조회수 : 467
  제목 : 여러가지 조건문에서 한가지만 실행이되는데요 이유를 도저히 모르겠습니다 ㅠ
SEQ : 164437 글쓴이 : lljungho

작성 포맷 : TEXT 모드, 자동 줄바꿈 사용

안녕하세요! 일하면서 틈틈히 들어와 눈팅하며 배우고 있습니다! 
너무너무 도움이 많이 되는거 같아요!!!
이번에 작업하던 것 중에서 환불금액 입력하여 
수정버튼을 누르면 데이터 베이스에 기존환불금액을 변경하여
업데이트를 하는건데  list.asp로 넘겨받아서 조건문들에 따라 
금액의 크기를 비교하여 실결제금액보다 크게 입력하지 못하게 해놨습니다
그런데 조건들중에 한가지만 계속 실행이됩니다....ㅠㅠㅠㅠ
어떤 문제인지 계속 들여다 보는데도 모르겠어서 
이렇게 글을 남기게 되었습니다..

활용되는 태그는 아래코드입니다
<form name="form" method="post" action="list.asp>
    <input name="return_price" value="<%=FormatNumber(isCols(14),0)%>" class="inptxt1">
    <a href="javascript:document.form.submit();" class="fbtn">수정</a>
</form>

dim return_price ''기존데이터베이스에 저장되어 있는 환불예정금액입니다
dim return_price1 ''return_price로 넘겨받은 값입니다
dim return_price2 ''return_price값에서 콤마를 제거한 값입니다

return_price1 = request("return_price")
return_price2 = Replace(return_price1, "," ,"")

sql = "select return_price from order_mast where idx=" & idx
set dr = db.execute(sql)
If Not dr.eof Or Not dr.bof Then
    return_price = dr(0) ''기존 db에 저장된 환불예정금액
dr.close
End if 

response.write""&return_price2&" / "&return_price&""  <-- 값을 확인해보면 기존,입력 값이 제대로 들어옵니다!
response.end  

If return_price < return_price2 then ''기존 값이 입력한 값보다 작은 경우 <-- 금액을 크게,작게,같게 입력해도 이것만 실
행이 됩니다...

    Response.write"<script>"
    Response.write"alert('환불금액이 결제 금액보다 클 수 없습니다.');"
    Response.write"self.location.href='return_list.asp" ''주소 뒤에 붙은 내용들은 길어서 지웠습니다
    Response.write"</script>"
    Response.end

ElseIf return_price = return_price2 then ''기존 값이 입력한 값과 같을 경우

    Response.write"<script>"
    Response.write"alert('환불 금액이 기존과 같아 수정하지 않습니다.');"
    Response.write"self.location.href='return_list.asp"
    Response.write"</script>"
    Response.end

ElseIf return_price > return_price2 then ''기존 값이 입력한 값보다 큰 경우

    sql = "update order_mast set return_price = "& return_price2 &" where idx=" & idx
    db.execute(sql)

    db.close
    set db = nothing

    Response.write"<script>"
    Response.write"alert('환불금액이 변경되었습니다.');"
    Response.write"self.location.href='return_list.asp"
    Response.write"</script>"
    Response.end

End if

부디 코린이에게  고견을 부탁드립니다!!
감사합니다!!

  topwood
  2022-11-15(08:56)
가끔 문자형, 숫자형 비교가 잘 안될때가 있습니다.
그럴땐 명시적으로 숫자형 또는 문자형으로 변환 후 해 주시면 됩니다. 숫자형인 데이타로 보
이니 cdbl()로 숫자로 변환 후 비교 하시면 될 듯 합니다.
return_price = cdbl(return_price)
return_price2 = cdbl(return_price2)

  lljungho
  2022-12-05(11:38)
캐릭 이미지
topwood님 제가 많이 늦었네요!! 답변 너무 감사드립니다!!!


제목 작성자 날짜 조회
여러가지 조건문에서 한가지만 실행이되는데요 이유를 도저히 모르겠.. (2) lljungho 2022-11-11 467

 
 
.NET과 Java 동영상 기반의 교육사이트

로딩 중입니다...

서버 프레임워크 지원 : NeoDEEX
based on ASP.NET 3.5
Creative Commons License
{5}
{2} 읽음   :{3} ({4})