Ich versuche gerade SQL-Abfragen in meiner Web-App zu vermeiden. Ich schaute mich um und kam zu dem Schluss, dass ADO Recordset
s das beste oder zumindest sicherste Tool für den Job wäre. Ich muss Datensätze in eine Datenbanktabelle einfügen. Leider weiß ich nicht, wie ich den Identitätswert für den gerade eingefügten Datensatz erhalten soll. Hier ist eine Reduzierung von dem, was ich jetzt habe:
Der Code, den ich habe, fügt den Datensatz erfolgreich ein, aber ich kann nicht für das Leben von mir herausfinden, wie man das ID-Feld von Recordset
nach dem Einfügen aktualisiert. Wie kann ich den Identitätsspaltenwert von diesem Recordset
zurückholen?
UPDATE - Hier ist die Lösung in Bezug auf den obigen Code.
Ich musste den Cursor-Typ in adOpenKeyset
anstelle von adOpenForwardOnly
ändern. Nachdem ich dies getan habe, wird der Datensatz automatisch mit dem neuen Wert des Felds "auto number" nach dem Einfügen aktualisiert. Es ist jedoch nicht was Sie denken, dass es ist. Der Wert von rs("id")
wird nicht zu einer ganzen Zahl oder gar einer Variante. Es wird zu einer Art Automation
type und kann nicht als Zahl ausgewertet werden. Auch kann CInt () aus irgendeinem Grund nicht direkt für diesen Typ verwendet werden. Sie müssen also den Wert in einen String konvertieren und ihn dann in Int
konvertieren. So habe ich das geschafft:
Danke an Dee für ihre Antwort. Es hat enorm geholfen.
Tags und Links asp-classic ado