ADO Thêm Bản ghi
Chúng tôi có thể sử dụng lệnh SQL INSERT INTO để thêm bản ghi vào bảng trong cơ sở dữ liệu.
Thêm bản ghi vào bảng trong cơ sở dữ liệu
Chúng tôi muốn thêm một bản ghi mới vào bảng Khách hàng trong cơ sở dữ liệu Northwind. Trước tiên, chúng tôi tạo một biểu mẫu chứa các trường mà chúng tôi muốn thu thập dữ liệu từ:
<html>
<body>
<form method="post" action="demo_add.asp">
<table>
<tr>
<td>CustomerID:</td>
<td><input name="custid"></td>
</tr><tr>
<td>Company Name:</td>
<td><input name="compname"></td>
</tr><tr>
<td>Contact Name:</td>
<td><input name="contname"></td>
</tr><tr>
<td>Address:</td>
<td><input name="address"></td>
</tr><tr>
<td>City:</td>
<td><input name="city"></td>
</tr><tr>
<td>Postal Code:</td>
<td><input name="postcode"></td>
</tr><tr>
<td>Country:</td>
<td><input name="country"></td>
</tr>
</table>
<br><br>
<input type="submit" value="Add New">
<input type="reset" value="Cancel">
</form>
</body>
</html>
Khi người dùng nhấn nút gửi, biểu mẫu sẽ được gửi đến một tệp có tên "demo_add.asp". Tệp "demo_add.asp" chứa mã sẽ thêm bản ghi mới vào bảng Khách hàng:
<html>
<body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
sql="INSERT INTO customers (customerID,companyname,"
sql=sql & "contactname,address,city,postalcode,country)"
sql=sql & " VALUES "
sql=sql & "('" & Request.Form("custid") & "',"
sql=sql & "'" & Request.Form("compname") & "',"
sql=sql & "'" & Request.Form("contname") & "',"
sql=sql & "'" & Request.Form("address") & "',"
sql=sql & "'" & Request.Form("city") & "',"
sql=sql & "'" & Request.Form("postcode") & "',"
sql=sql & "'" & Request.Form("country") & "')"
on error resume next
conn.Execute sql,recaffected
if err<>0 then
Response.Write("No update permissions!")
else
Response.Write("<h3>" & recaffected & " record added</h3>")
end if
conn.close
%>
</body>
</html>
Quan trọng
Nếu bạn sử dụng lệnh SQL INSERT, hãy lưu ý những điều sau:
- Nếu bảng chứa khóa chính, hãy đảm bảo thêm một giá trị duy nhất, không Null vào trường khóa chính (nếu không, nhà cung cấp có thể không thêm bản ghi hoặc xảy ra lỗi)
- Nếu bảng chứa trường AutoNumber, không bao gồm trường này trong lệnh SQL INSERT (giá trị của trường này sẽ được nhà cung cấp tự động xử lý)
Điều gì về các trường không có dữ liệu?
Trong cơ sở dữ liệu MS Access, bạn có thể nhập các chuỗi có độ dài bằng 0 ("") trong các trường Văn bản, Siêu kết nối và Bản ghi nhớ NẾU bạn đặt thuộc tính AllowZeroLength thành Có.
Lưu ý: Không phải tất cả cơ sở dữ liệu đều hỗ trợ chuỗi độ dài bằng 0 và có thể gây ra lỗi khi thêm bản ghi có trường trống. Điều quan trọng là phải kiểm tra xem cơ sở dữ liệu của bạn hỗ trợ những kiểu dữ liệu nào.