10/10/2018, 10:05

Đúng theo sách ASP nhưng sao lại báo lỗi??? help me!!!

Mình cũng bị dzính chưởng như bạn ý, nhưng là dzính chưởng với lệnh UPDATE, nó báo sai cấu trúc hoài mặc dù những table trước mình đều Update và Inser ngon lành, cuối cùng thì đã phát kiến ra lỗi sai ko thể ngờ tới, đó là cái tội đạt tên các cột là UserName và Password, hix hix, thế là ông nội IIS báo lỗi miết. Giờ đổi lại là User & Pass thì OK rồi, thanks nhiều nha
vns_vtc viết 12:06 ngày 10/10/2018
Mình đang tự học ASP nhưng bước đầu đã gặp khó khăn nhờ mọi người giúp đỡ. Mình đã làm theo sách hướng dẫn nhưng vẫn bị lỗi. Nhờ mọi người chỉ giáo dùm. Thanks. Đây là trang ASP mình thử insert dữ liệu vào file Access love2u.mdb có table Admin(Username,Password). Mình đã để file access chung thư mục với file asp và cũng tạo 1 alias trong IIS trỏ đến thư mục chứa 2 file này nhưng ko hiểu sao vẫn bị báo lỗi (code đâu có sai mà!!!). Đây là trang ASP:

<%@codepage="65001"%>
<%
dim strConn
strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source = "& server.mappath("Love2u.mdb")
UserName="thanhcong"
Password="111"
set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open strConn
sql="Insert into ADMIN(USERNAME,PASSWORD) values("
sql=sql & "'"&UserName&"','"&Password&"')"
Response.write(sql)
Conn.Execute sql
Conn.Close
set Conn=nothing
%>
<html>

<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Test insert data</title>
</head>
<body>

</body>

</html>


------------------------------------------------------------------
Còn đây là trang báo lỗi:

HTTP 500.100 - Internal Server Error - ASP error
Internet Information Services

--------------------------------------------------------------------------------

Technical Information (for support personnel)

Error Type:
Microsoft JET Database Engine (0x80040E14)
Syntax error in INSERT INTO statement.
/Test/testadd.asp, line 12


Mình đã thử nhiều cách khác như đổi chuỗi kết nối, đổi câu lệnh SQL insert trực tiếp chứ ko dùng qua biến nhưng cũng bị báo lỗi (Conn.Execute sql). Không hiểu nỗi!!! Nhờ các bạn chỉ ra chỗ sai của mình nha. Thanks.
paulsteigel viết 12:11 ngày 10/10/2018
Lỗi này là lỗi cú pháp SQL, bạn ạ, thay thế câu lệnh của bạn bằng cái này nhé:
(Vì bạn đang dùng ADO nên cú pháp cần viết thế này)
2. Bạn thay cú pháp SQL thành
sql="Insert into ADMIN(USERNAME,PASSWORD) SELECT '" & UserName & "' AS Expr1, '" & Password & "' AS Expr2;"
Endal viết 12:09 ngày 10/10/2018
Hãy thử thay đổi cách kết nối đến nguồn dữ liệu bằng đoạn code sau :

Dim conn, strConn, dbPath

dbPath = Server.MapPath(".")&"\GB.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
strConn= "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & dbPath

conn.Open strConn

Sau đó, kiểm tra lại xem chữ in thường và in hoa tên của Table và các fields thế nào .
vns_vtc viết 12:07 ngày 10/10/2018
Mình cũng đã đổi chuỗi kết nối như bạn Endal nhưng cũng báo lỗi bạn à! Còn với hướng dẫn của bạn Paulsteigel thì mình chưa thử nhưng rõ ràng câu lệnh SQL đó mình đã đọc từ sách và tham khảo ứng dụng Web đã chạy mà. Thật tình không hiểu nỗi!!! Cám ơn mọi người đã giúp đỡ. Ai có ý kiến khác xin giúp mình nhé!!!
viettech viết 12:09 ngày 10/10/2018
khai báo biến sql chưa,thu khai báo sql coi sao

chúc thành công
haiboss viết 12:05 ngày 10/10/2018
thay đổi tên 2 trường username,password trong bảng admin đi là được vì hai từ này trùng với từ khóa trong access.username=users .password=pass là được
vns_vtc viết 12:20 ngày 10/10/2018
Mình đã thử hết các cách mà cách bạn hướng dẫn ở trên rồi nhưng vẫn không được. Có ai có cách khác không, giúp mình với!!! Thanks!!!
haiboss viết 12:16 ngày 10/10/2018
đổi tên bảng admin luôn đi,đổi nó thành bang_admin(matruycap,matkhau).rồi insert vào
sql="Insert into bang_admin(matruycap,matkhau)values('"&UserName&"' ,'"&Password&"')"

đổi tên bảng admin luôn đi,đổi nó thành bang_admin(matruycap,matkhau).rồi insert vào
sql="Insert into bang_admin(matruycap,matkhau)values('"&UserName&"' ,'"&Password&"')".không được nữa thì thua luôn á
real_time viết 12:17 ngày 10/10/2018
xem lại cấu trúc câu lệnh của bạn đi lỗi 500 là lỗi viết sai cú pháp câu lệnh asp mà.
Bài liên quan
0