2016-07-07 2 views
2

Ich habe derzeit eine asp.net-Website durch Visual Studio, die drei ASPX-Seiten enthält. Jede ASPX-Seite enthält einfache Beschriftungs- und Textfeldfelder. Es gibt eine Schaltfläche in jeder Webaspx-Seite, die ebenfalls zur zweiten und dritten Seite weiterleitet, sowie eine Absenden-Schaltfläche am Ende der dritten Seite. Auch hinter den Schaltflächen befindet sich ein SQL-Befehl/eine Abfrage, die die Eingabe aus den Textfeldern in eine SQL-Datenbank einfügt. Ich habe eine Tabelle in der Datenbank, die ich von allen drei Seiten eingeben möchte. Als ich das versuchte, blieb die Eingabe von der ersten Seite korrekt in der ersten Zeile. Dann hat die Eingabe von der zweiten Seite ihre eigene zweite Zeile gemacht und so weiter ... Ich verwende auch eine INSERT-Anweisung für jede Web-Aspx-Seite. Ich habe ein Bild unten, was die Datenbank aussieht ... wie kann ich alle die Eingabe in eine Reihe bekommenEinfügen von Daten in SQL-Datenbank-Tabelle von mehreren ASPX-Webseiten

+0

Scheint so, als sollten Sie ein Assistenten-Steuerelement verwenden, nicht 3 Seiten. – Marcel

+0

Einzel Seite Anwendung ist, was Sie wollen https://en.wikipedia.org/wiki/Single-page_application – Rohit

+0

@Marcel Könnten Sie weiter für mich einen Assistenten Steuerung erklären !? danke – Bibby

Antwort

0

Mit der aktuellen Konfiguration Sie eine Update-Anweisung benötigen, statt eine Insert-Anweisung auf den folgenden Seiten.

Man könnte auch so etwas wie Session-Variablen tun und nur einfügen, nachdem Sie alle Daten gesammelt haben.

+0

Ich sehe Ihren Kommentar zu der anderen Antwort. Sie würden etwas tun wie UPDATE tblmyname SET Nextvalue = variable WHERE name = name. Aber mit dem, was du tust, sind so viele Dinge falsch. Ein Name ist kein gutes eindeutiges Feld. Sie sollten keine Zeichenfolge wie diese übergeben, die Sie für SQL-Injection-Angriffe öffnet. Für Starter. – JDro04

0

Wenn Sie es in eine Zeile bekommen möchten, müssen Sie eine INSERT Anweisung ausführen und der Rest sollte UPDATE Anweisungen sein. Jede Anweisung INSERT erstellt eine neue Zeile in der Datenbank.

Wenn Sie versuchen, UPDATE eine Zeile, stellen Sie sicher, dass Sie etwas wie WHERE ID = x hinzufügen, so dass Sie nur die eine Zeile aktualisieren.

+0

Dies ist mein Code in jeder Webseite ... sollte ich nur die Einfügung ändern und das Update für die letzten beiden Seiten sagen? String sql = "INSERT INTO tblMyName" + "(Name)" + "Werte" + "(@Name)"; CMethods.executeNonQuery (SQL, "@Name", lblName.Text.Trim(), – Bibby

+0

Zuerst sollte so etwas wie 'INSERT INTO tblMyName (Name) VALUES (@Name)' sein. Wenn der Name der Primärschlüssel der Tabelle ist, Die nächste sollte Updates sein, wie 'UPDATE tblMyName SET Alter = @ Alter WHERE Name = @ Name' Beachten Sie, dass ich hier annehmen, dass" Name "der Primärschlüssel (oder zumindest ein Eindeutiger Schlüssel) der Tabelle ist. Ich würde vorschlagen ein ID-Feld vom Typ integer Hinzufügen (oder UUID, oder so ähnlich) und die Verwendung dieser als Primärschlüssel, die Insert-Anweisung eher machen würde. 'UPDATE tblMyName SET Alter = @Age WHERE ID = @ ID' – mjepson

+0

Was ist, wenn ich keine ID oder Primärschlüssel verwende? – Bibby