并非所有的数据库都支持零长度的字符串,ADO 添加记录因而当添加带有空白字段的记录时可能会产生错误。因此,检查您使用的数据库所支持的数据类型是很重要的,您可以在文本、超链接以及备忘字段输入零长度的字符串 ("")。
我们希望向 Northwind 数据库中的 Customers 表添加一条新的记录。我们首先要创建一个表单,ADO 添加记录这个表单包含了我们需要从中搜集数据的输入域:
- <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>
ADO 添加记录当用户按下确认按钮时,这个表单就会被送往名为 "demo_add.asp" 的文件。文件 "demo_add.asp" 中含有可向 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,"
- sqlsql=sql & "contactname,address,city,postalcode,country)"
- sqlsql=sql & " VALUES "
- sqlsql=sql & "('" & Request.Form("custid") & "',"
- sqlsql=sql & "'" & Request.Form("compname") & "',"
- sqlsql=sql & "'" & Request.Form("contname") & "',"
- sqlsql=sql & "'" & Request.Form("address") & "',"
- sqlsql=sql & "'" & Request.Form("city") & "',"
- sqlsql=sql & "'" & Request.Form("postcode") & "',"
- sqlsql=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>
在ADO 添加记录对象结构还是非常复杂的,在DataSet对象的下一层中是DataTableCollection对象、DataRelationCollection对象和ExtendedProperties对象。上文已经说过,每一个DataSet对象是由若干个DataTable对象组成。DataTableCollection就是管理DataSet中的所有DataTable对象。表示DataSet中两个DataTable对象之间的父/子关系是DataRelation对象。它使一个DataTable 中的行与另一个DataTable中的行相关联。#t#
这种关联类似于关系数据库中数据表之间的主键列和外键列之间的关联。DataRelationCollection对象就是管理DataSet中所有DataTable之间的DataRelation关系的。在DataSet中DataSet、ADO 添加记录和DataColumn都具有ExtendedProperties属性。ExtendedProperties其实是一个属性集(PropertyCollection),ADO 添加记录用以存放各种自定义数据,如生成数据集的SELECT语句等。