2011-01-06 17 views
0

Ich arbeite an einer Website, in der als Benutzer sich anmeldet (erste Datenbankanforderung) die gespeicherte Prozedur Kennwort und Benutzer-ID ändern und gibt dann Benutzer Datensatz, den ich in Sitzung für die nächste Verwendung.mehrere Datensätze in einer Anfrage erhalten?

Danach mache ich eine zweite db Anfrage. Es gibt die Adressen des Benutzers zurück, die ich in den Cache gestellt habe.

Können Sie mich bitte führen, gibt es eine Möglichkeit, dass ich beide Datensätze (Benutzerdatensatz und seine Adresse aus der 2. Tabelle) in einer Datenbank anfordern kann.

plz führen Sie mich auf diese, ich verwende DAAB (Eingabe Preis Bibliothek) für den Datenzugriff.

Dank

Antwort

1

Ändern Sie bitte Ihre SP erhalten, die mehrere SELECT-Anweisungen hat, wie in Ihnen Fall 2. Zwei select Anweisungen in einem SP geben zwei Datensätze zurück. Überprüfen Sie in SQL Management Studio, wenn Sie Ihren SP ausführen, sollte es mehrere Grid im unteren Bereich anzeigen.

Sobald Ihr SP fertig ist, rufen Sie SP von C# -Code und laden Sie das Ergebnis in DataSet. Dataset wird zwei Tabellen haben, und Sie können die Daten aus verschiedenen Tabelle

+0

danke für die Führung von mir. Ich verwende keine Datentabelle oder Datenmenge. Ich verwende benutzerdefinierte Objekte. Kann es mit benutzerdefinierten Objekten gemacht werden? PLZ-Rat. – haansi

+1

SP gibt keine benutzerdefinierten Objekte zurück, Sie laden das Ergebnis aus der Datenbank in benutzerdefinierten Objekten. DAAB mit Rückgabe entweder Einzelwert oder DataReader oder DataSet. Sobald Sie das Dataset haben, können Sie die Daten aus dem Dataset in Ihr benutzerdefiniertes Objekt laden. – hungryMind

+0

Kann ich es irgendwie mit DataReader machen? – haansi

1

Sie können in einer gespeicherten Prozedur zwei Auswahlabfragen schreiben oder Ausführen zwei Abfragen nacheinander. In einer einzelnen Abfrage können Sie die Daten in DataSet ausführen und empfangen.

ExecuteDataset()

So zwei Tabellen innerhalb des Datensatzes zurückgegeben werden. Sie können die Werte wie

dataset.tables (0) dataset.tables (1)

Dank

+0

danke für die Führung und Weitergabe. Ich verwende benutzerdefinierte Objekte und keine Dataset- oder Datentabellen. Kannst du ein bisschen mehr helfen? – haansi

0

erhalten Sie würden nichts aus dem Abrufen von zwei Ergebnissätze auf einmal, aber der Code wird mehr inkohärent. Warum musst du zwei logisch getrennte Operationen zu einer zusammenführen? Anstatt solche fragwürdigen Methoden zu verwenden, können Sie Join verwenden, um eine Ergebnismenge zu erhalten, die alle Daten auf einmal enthält, aber das scheint immer noch falsch zu sein. Ich sehe keinen sauberen Weg, um das zu tun, wonach Sie fragen, und alle Vorteile, die Sie erzielen könnten.

Verwandte Themen