此頁沒有內(nèi)容條目
內(nèi)容

AddNew 方法范例

該范例使用 AddNew 方法創(chuàng)建具有指定名稱的新記錄。

Public Sub AddNewX()

   Dim cnn1 As ADODB.Connection

   Dim rstEmployees As ADODB.Recordset

   Dim strCnn As String

   Dim strID As String

   Dim strFirstName As String

   Dim strLastName As String

   Dim booRecordAdded As Boolean

   ' 打開連接。

   Set cnn1 = New ADODB.Connection

   strCnn = "Provider=sqloledb;" & _

      "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=;"

   cnn1.Open strCnn

   ' 打開雇員表。

   Set rstEmployees = New ADODB.Recordset

   rstEmployees.CursorType = adOpenKeyset

   rstEmployees.LockType = adLockOptimistic

   rstEmployees.Open "employee", cnn1, , , adCmdTable

   ' 從用戶獲取數(shù)據(jù),雇員 ID 的格式必須為:

   ' 名、中間名和姓的三個(gè)首字母,

   ' 五位數(shù)字,以及性別標(biāo)識(shí) M 或 F。

   ' 例如,Bill Sornsin 的雇員 ID 為:B-S55555M。

   strID = Trim(InputBox("Enter employee ID:"))

   strFirstName = Trim(InputBox("Enter first name:"))

   strLastName = Trim(InputBox("Enter last name:"))

   ' P只在用戶輸入姓和名之后進(jìn)行。

   If (strID <> "") And (strFirstName <> "") _

      And (strLastName <> "") Then

      rstEmployees.AddNew

      rstEmployees!emp_id = strID

      rstEmployees!fname = strFirstName

      rstEmployees!lname = strLastName

      rstEmployees.Update

      booRecordAdded = True

      ' 顯示新添加的數(shù)據(jù)。

      MsgBox "New record: " & rstEmployees!emp_id & " " & _

         rstEmployees!fname & " " & rstEmployees!lname

   Else

      MsgBox "Please enter an employee ID, " & _

         "first name, and last name."

   End If

   ' 刪除新記錄,因?yàn)檫@只是演示。

   cnn1.Execute "DELETE FROM employee WHERE emp_id = '" & strID & "'"

   rstEmployees.Close

   cnn1.Close

End Sub

VBScript 版本

下面是使用 VBScript 編寫、并用于 Active Server Page (ASP) 的相同范例。如需查看該完整功能范例,請(qǐng)使用與 IIS 一同安裝并位于 C:\InetPub\ASPSamp\AdvWorks 的數(shù)據(jù)源 AdvWorks.mdb,來創(chuàng)建名為 AdvWorks 的系統(tǒng)“數(shù)據(jù)源名稱”(DSN)。這是 Microsoft Access 數(shù)據(jù)庫文件。請(qǐng)使用“查找”命令定位文件 Adovbs.inc,并將其放入計(jì)劃使用的目錄中。請(qǐng)將以下代碼剪切并粘貼到“記事本”或其他文本編輯器中,另存為 AddNew.asp。這樣,便可在任何客戶端瀏覽器中查看結(jié)果。

如要執(zhí)行此范例,請(qǐng)按 HTML 格式添加虛構(gòu)的新記錄,單擊“添加新記錄”。查看 Delete 方法范例可刪除不需要的記錄。

<!-- #Include file="ADOVBS.INC" -->

<% Language = VBScript %>

<HTML><HEAD><TITLE>ADO Open Method</TITLE>

</HEAD><BODY>

<FONT FACE="MS SANS SERIF" SIZE=2>

<Center><H3>ADO AddNew Method</H3>

<!-- ADO Connection Object used to create recordset-->

<%

'創(chuàng)建并打開 Connection 對(duì)象。

Set OBJdbConnection = Server.CreateObject("ADODB.Connection")

OBJdbConnection.Open "AdvWorks"

'創(chuàng)建并打開 Recordset 對(duì)象。

Set RsCustomerList = Server.CreateObject("ADODB.Recordset")

RsCustomerList.ActiveConnection = OBJdbConnection

RsCustomerList.CursorType = adOpenKeyset

RsCustomerList.LockType = adLockOptimistic

RsCustomerList.Source = "Customers"

RsCustomerList.Open

%>

<!-- 如果這是第一次打開頁面,則輸入數(shù)據(jù)時(shí) Form 集合將為空。

請(qǐng)運(yùn)行 AddNew 方法-->

<% If Not IsEmpty(Request.Form) Then

   If Not Request.Form("CompanyName") = "" Then

      RsCustomerList.AddNew

      RsCustomerList("CompanyName") = Request.Form("CompanyName")

      RsCustomerList("ContactLastName") = Request.Form("LastName")

      RsCustomerList("ContactFirstName") = Request.Form("FirstName")

      RsCustomerList("PhoneNumber") = Request.Form("PhoneNumber")

      RsCustomerList("City") = Request.Form("City")

      RsCustomerList("StateOrProvince") = Request.Form("State")

      RsCustomerList.Update

      RsCustomerList.MoveFirst

   End If

End If

%>

<TABLE COLSPAN=8 CELLPADDING=5 BORDER=0>

<!-- Customer 表的 BEGIN 列標(biāo)頭行-->

<TR><TD ALIGN=CENTER BGCOLOR="#008080">

<FONT STYLE="ARIAL NARROW" COLOR="#ffffff" SIZE=1>Company Name</FONT></TD>

<TD ALIGN=CENTER BGCOLOR="#008080">

<FONT STYLE="ARIAL NARROW" COLOR="#ffffff" SIZE=1>Contact Name</FONT></TD>

<TD ALIGN=CENTER WIDTH=150 BGCOLOR="#008080">

<FONT STYLE="ARIAL NARROW" COLOR="#ffffff" SIZE=1>Phone Number</FONT></TD>

<TD ALIGN=CENTER BGCOLOR="#008080">

<FONT STYLE="ARIAL NARROW" COLOR="#ffffff" SIZE=1>City</FONT></TD>

<TD ALIGN=CENTER BGCOLOR="#008080">

<FONT STYLE="ARIAL NARROW" COLOR="#ffffff" SIZE=1>State/Province</FONT></TD></TR>

<!--每通過一遍記錄集,顯示一行 Customer 表的 ADO 數(shù)據(jù)-->

<% Do While Not RsCustomerList.EOF %>

  <TR><TD BGCOLOR="f7efde" ALIGN=CENTER>

  <FONT STYLE="ARIAL NARROW" SIZE=1>

  <%= RSCustomerList("CompanyName")%>

  </FONT></TD>

  <TD BGCOLOR="f7efde" ALIGN=CENTER>

  <FONT STYLE="ARIAL NARROW" SIZE=1>

  <%= RScustomerList("ContactLastName") & ", " %>

  <%= RScustomerList("ContactFirstName") %>

  </FONT></TD>

  <TD BGCOLOR="f7efde" ALIGN=CENTER>

  <FONT STYLE="ARIAL NARROW" SIZE=1>

   <%= RScustomerList("PhoneNumber")%>

 </FONT></TD>

  <TD BGCOLOR="f7efde" ALIGN=CENTER>

  <FONT STYLE="ARIAL NARROW" SIZE=1>

  <%= RScustomerList("City")%>

  </FONT></TD>

  <TD BGCOLOR="f7efde" ALIGN=CENTER>

  <FONT STYLE="ARIAL NARROW" SIZE=1>

  <%= RScustomerList("StateOrProvince")%>

  </FONT></TD></TR>

<!-- Next Row = Record Loop 并添加到行 html 表-->

<%

RScustomerList.MoveNext

Loop

%>

</TABLE><HR>

<!-- 輸入新記錄的窗體將變量返回該頁 -->

<Table>

<Form Method = Post Action="AddNew.asp" Name=Form>

<TR><TD><P>Company Name:</TD>

<TD><Input Type="Text" Size="50" Name="CompanyName" Value = ""></P></TD>

<TR><TD><P>Contact First Name:</TD>

<TD><Input Type="Text" Size="50" Name="FirstName" Value = ""></P></TD>

<TR><TD><P>Contact Last Name:</TD>

<TD><Input Type="Text" Size="50" Name="LastName" Value = ""></P></TD>

<TR><TD><P>Contact Phone:</TD>

<TD><Input Type="Text" Size="50" Name="PhoneNumber" Value = ""></P></TD>

<TR><TD><P>City:</TD>

<TD><Input Type="Text" Size="50" Name="City" Value = ""></P></TD>

<TR><TD><P>State / Province:</TD>

<TD><Input Type="Text" Size="5" Name="State" Value = ""></P></TD>

<TR><TD><Input Type="Submit" Value="Add New "><Input Type="Reset" Value="Reset Form">

</Form></Table></Center></FONT>

<%'Show location of DSN data source

Response.Write(OBJdbConnection)

%>

<Script Language = "VBScript">

Sub Form_OnSubmit

   MsgBox "Sending New Record to Server",,"ADO-ASP _Example"

End Sub

</Script>

</BODY></HTML>