Thêm bản ghi ADO

Chúng ta có thể sử dụng lệnh INSERT INTO của SQL để thêm bản ghi vào bảng của cơ sở dữ liệu.

Thêm bản ghi vào bảng của cơ sở dữ liệu

Chúng tôi hy vọng thêm một bản ghi mới vào bảng Customers của cơ sở dữ liệu Northwind. Trước tiên, chúng tôi cần tạo một biểu mẫu chứa các lĩnh vực đầu vào mà chúng tôi cầ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="Thêm mới"> 
<input type="reset" value="Hủy bỏ">
</form>
</body>
</html>

Khi người dùng nhấn nút xác nhận, biểu mẫu này sẽ được gửi đến tệp có tên "demo_add.asp". Tệp "demo_add.asp" chứa mã để thêm một bản ghi mới vào bảng Customers:

<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("Không có quyền cập nhật!")
else 
  Response.Write("<h3>" & recaffected & " bản ghi đã thêm</h3>")
end if
conn.close
%>
</body>
</html>

Việc quan trọng

Khi bạn sử dụng lệnh INSERT command, hãy lưu ý các điểm sau:

  • Nếu bảng chứa một khóa chính, hãy đảm bảo rằng giá trị được thêm vào trường khóa chính là duy nhất và không để trống (nếu không, nhà cung cấp sẽ không thêm bản ghi này hoặc có thể xảy ra lỗi).
  • Nếu bảng chứa một trường tự động mã hóa, đừng bao gồm trường này trong lệnh INSERT (giá trị của trường này được nhà cung cấp chịu trách nhiệm).

Về trường không có dữ liệu

Trong cơ sở dữ liệu MS Access, nếu bạn thiết lập thuộc tính AllowZeroLength thành 'Yes', bạn có thể nhập chuỗi độ dài bằng 0 (") vào trường văn bản, liên kết và trường ghi nhớ.

Chú ý:Không phải tất cả cơ sở dữ liệu đều hỗ trợ chuỗi có độ dài bằng 0, vì vậy khi thêm bản ghi có trường trống có thể xảy ra lỗi. Do đó, kiểm tra loại dữ liệu mà cơ sở dữ liệu bạn sử dụng hỗ trợ là rất quan trọng.