ADO Datensätze hinzufügen


Wir können den SQL INSERT INTO-Befehl verwenden, um einen Datensatz zu einer Tabelle in einer Datenbank hinzuzufügen. 


Hinzufügen eines Datensatzes zu einer Tabelle in einer Datenbank

Wir möchten der Customers-Tabelle in der Northwind-Datenbank einen neuen Datensatz hinzufügen. Wir erstellen zuerst ein Formular, das die Felder enthält, aus denen wir Daten erfassen möchten:

<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>


Wenn der Benutzer auf die Schaltfläche „Senden“ klickt, wird das Formular an eine Datei namens „demo_add.asp“ gesendet. Die Datei „demo_add.asp“ enthält den Code, der der Tabelle „Kunden“ einen neuen Datensatz hinzufügt:

<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>

Wichtig

Wenn Sie den SQL INSERT-Befehl verwenden, beachten Sie Folgendes:

  • Wenn die Tabelle einen Primärschlüssel enthält, stellen Sie sicher, dass Sie einen eindeutigen Nicht-Null-Wert an das Primärschlüsselfeld anhängen (andernfalls hängt der Anbieter den Datensatz möglicherweise nicht an, oder es tritt ein Fehler auf).
  • Wenn die Tabelle ein AutoWert-Feld enthält, schließen Sie dieses Feld nicht in den SQL-INSERT-Befehl ein (der Wert dieses Felds wird automatisch vom Anbieter übernommen).

Was ist mit Feldern ohne Daten?

In einer MS Access-Datenbank können Sie Zeichenfolgen der Länge Null ("") in die Felder Text, Hyperlink und Memo eingeben, wenn Sie die Eigenschaft AllowZeroLength auf Yes setzen.

Hinweis: Nicht alle Datenbanken unterstützen Zeichenfolgen der Länge Null und können einen Fehler verursachen, wenn ein Datensatz mit leeren Feldern hinzugefügt wird. Es ist wichtig zu prüfen, welche Datentypen Ihre Datenbank unterstützt.