2016-04-09 19 views
2

Ich habe eine person Klasse, die Name, CNIC, Gender, City Eigenschaften hat.Speichern der Stadt-ID in DB und Abrufen des Namens der Stadt beim Abrufen von Daten?

Zum Zeitpunkt des Speicherns von Daten in der DB ist alles in Ordnung.

ich bevölkern ein Drop-Down mit den Städten und Benutzer können Stadt und die ID der Stadt wählen, wird in tblperson ‚s City Spalte gespeichert werden, die tblcityID Spalte Fremdschlüssel hat.

Nun, wenn ich Daten aus tblPerson abrufen möchten bekomme ich alles in Ordnung, und ich bin in der Lage Daten in die Textfelder zu zeigen, wenn auch ich Stadt id bekommen und nicht Name der Stadt

Aber ich will den Namen bekommen der Stadt in der Textbox angezeigt. Wie kann ich das machen?

Was ich denke, ich sollte tun ist:

  1. eine neue Methode in der Stadt Klasse erstellen getCityName.

  2. Pass ID der Stadt von person.City bis Methode der Stadt Klasse.

  3. Erhalten von tblCity Tabelle Ortsnamen in der Datenbank

Ist dieser Ansatz richtig? Wenn nicht, was ist der bessere Weg, dies zu tun?

+0

Innere der Stadt Tabellen verbinden und unter der Annahme, den Namen anstelle –

+0

Der obige Kommentar gilt bekommen, dass Sie jede Zeile aus Tabelle City nie löschen – DhruvJoshi

Antwort

2

Sie müssen nur die entsprechende SQL-Abfrage schreiben. Mit der JOIN-Anweisung können Sie Daten aus mehreren Tabellen abrufen, und die SELECT-Anweisung kann diese Daten zurückgeben.

In Ihrem Fall die Abfrage sollte so etwas wie dieses

SELECT p.Name, p.CNIC , p.Gender, p.City, c.CityName 
FROM tblperson p LEFT JOIN tblCity c ON p.City = c.ID 

sein (Natürlich habe ich den Spaltennamen erraten, die den Namen der Stadt enthält.
Wenn es anders ist, dann können Sie es ändern)

Sie könnten einige interessante Dokumentation über JOIN mit Ihrer Lieblings-Suchmaschine finden.
Dies ist zum Beispiel aus Microsoft Technet

+0

ja ich über Verknüpfungen zu verstehen. aber wie würde ich retreived city name speichern, der in string sein wird und mein person.city attribut ist in int? – Mohsin

+0

Wie Sie sehen können, enthält die Abfrage auch das Feld p.City. Der CityName dient nur zur Anzeige. Wenn Sie ein DataGridView oder eine Art Gitter verwenden, sollten Sie die City-Spalte einfach ausblenden und Ihre Benutzer die CityName-Spalte anzeigen lassen, aber Sie haben vollen Zugriff auf dieselbe Zeile. City versteckte Feld – Steve

+0

tatsächlich verwende ich Layered-Architektur. Ich fülle Person-Objekt mit retreived Daten an Dal-Ebene und sende Daten zurück zu bll und von dort zu pl. Ich verwende hier nicht gridview. – Mohsin

Verwandte Themen