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 !!!
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 !!!
Bài liên quan
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
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!
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 !