10/10/2018, 10:24

Help...Sửa lỗi code ASP

Thân chào Anh em hết thảy!
Mình đang xây dựng 1 website thương mại điện tử bằng ASP và SQL Server 2k5. Và yêu cầu đặt ra ở đây là phải xuất ra được sản phẩm bán chạy trong ngày.

Trong Cơ sở dữ liệu SQL mình đã tạo một table VIEWBANCHAYTRONGNGAY(ở đây, sau mệnh êề điều kiện WHERE mình đã dùng hàm GETDATE() để lấy data trong ngày đó)

Code mình design như sau:


<%
var rsBanChayTrongNgay = Server.CreateObject("ADODB.RecordSet")
var sql = "SELECT MaSanPham,SoLuong=COUNT(MaSanPham)"
sql=sql + "FROM VIEWBANCHAYTRONGNGAY "
sql=sql + "WHERE TrangThai = 1 "
sql=sql + "GROUP BY MaSanPham "
sql=sql + "ORDER BY COUNT(MaSanPham) DESC"
rsBanChayTrongNgay = Conn.Execute(sql)
if(rsBanChayTrongNgay.Fields("MaSanPham") == null)
{
%>


<table width="100%" border="0">
<tr>
<td height="34">
<div align="center"><strong><em> Chưa có sản phẩm nào được bán ra </em></strong></div>
</td>
</tr>
</table>

<%
}
else
{
var rsSanPhamBanChayTrongNgay = Server.CreateObject("ADODB.RecordSet")
var sq = "SELECT TenSanPham FROM tblSanPham WHERE MaSanPham = '" + rsBanChayTrongNgay.Fields("MaSanPham") + "' "
rsSanPhamBanChayTrongNgay = Conn.Execute(sq)

%>

<table width="100%" border="0">
<tr>
<td height="68" align="center">
<%=rsSanPhamBanChayTrongNgay.Fields("TenSanPham")% >
</td>
</tr>
</table>
<%
rsBanChayTrongNgay.Close()
rsSanPhamBanChayTrongNgay.Close()
}

%>


______

Lỗi mà mình nhận được là: Nếu trong ngày đó có dữ liệu thì code chạy ổn(xuất ra được), nhưng nếu ngày đó không có gì hết(null) thì lại không chạy được. Nó báo không tìm thấy bảng ghi(data)

Anh em xem và giúp mình với! mình sắp phải báo cáo nhưng vẫn không giải quyết được lỗi này!

Nếu được, anh em vui lòng PM qua Yahoo: both_cdn hoặc thiengialac@gmail.com giúp mình với!

Chân thành cảm ơn anh em! Chúc anh em sức khỏe !!!
megaownage viết 12:40 ngày 10/10/2018
Thử sửa câu này:
if (rsBanChayTrongNgay.Fields("MaSanPham") == null)
thành ra:
if (rsBanChayTrongNgay == null)

** Không rành ngôn ngữ script lắm nên không dám chắc
hoangngau viết 12:40 ngày 10/10/2018
Vâng xin cảm ơn bạn nhiều nhen!

Mình đã test lại thử, nhưng kết quả vẫn cứ như vậy: khi có data thì chạy tốt nhưng khi không có data thì lại lỗi. Và nó yêu cầu data phải có 1 bảng ghi.

Các bạn xem lại và giúp mình với! Xin chân thành cảm ơn!
thuyduongcd viết 12:31 ngày 10/10/2018
Không có gì hết thì dĩ nhiên là nó báo không tìm thấy rồi. Muốn chặn cái thông báo này thì đếm số record trước
Code:
if rsBanChayTrongNgay.RecordCount >0 then
 .......
else
     msgbox("không tìm thấy")
end if
hoangngau viết 12:37 ngày 10/10/2018
Cảm ơn thuyduongcd nhiều nhé!

Mình đã sửa lại theo ý kiến của bạn, nhưng vẫn không hiểu tại sao vẫn chỉ đưa ra thông báo "Chưa có sản phẩm nào được bán ra" như trên. Mặc dù trong ngày đó đã có data rồi!

Mong thuyduongcd và các bạn giải đáp giúp mình với! Cảm ơn các bạn nhiều !
thuyduongcd viết 12:26 ngày 10/10/2018
Vậy thì cho show cái câu query ra rồi dùng chương trình chạy thử câu query này xem có được record nào không
Bài liên quan
0