2016-04-09 5 views
2

personクラスは、Name, CNIC, Gender, Cityというプロパティを持っています。都市IDをDbに保存し、データを取得する際に都市名を取得していますか?

DBにデータを保存するときは、すべて問題ありません。

は私が都市を選択することができます都市やユーザーとのドロップダウンを移入し、街のIDはtblcityID列への外部キー制約がありtblpersonCity列に保存されます。

、私はtblPersonからデータを取得したい場合、私はすべてがうまく取得し、私は街のIDとない都市名

を取得いえテキストボックス内のデータを表示することができるよしかし、私は名前を取得したいですテキストボックスに表示される市のどうやってやるの?私は私が何をすべきだと思う何

は次のとおりです。

  1. は都市クラスgetCityNameで新しいメソッドを作成します。

  2. person.CityからgetCityName都市クラスのメソッドから市のIDを渡します。このアプローチの権利は

  3. がデータベース

tblCityテーブルから都市名を取得しますか?そうでない場合は、これを行うためのより良い方法は何ですか?

+0

からインナーシティのテーブルに参加して、上記のコメントは、はい、私は加入について理解あなたは市テーブル –

+0

代わりに名を取得することです。しかし、私はどのように文字列と私のperson.city属性になるretreived都市名をintに格納するだろうか? – DhruvJoshi

答えて

2

適切なSQLクエリを作成するだけで済みます。 JOINステートメントを使用すると、複数のテーブルからデータを取得することができ、SELECTステートメントはこのデータを返すことができます。

クエリは、この

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

(もちろん、私は都市名を含む列の名前を推測している。
それが異なっている場合、あなたはそれを変更することができます)

のようなものでなければなりませんあなたの場合

お気に入りの検索エンジンを使用してJOINに関する興味深いドキュメントを見つけることができます。
これは、例えば、Microsoft Technet

+0

から任意の行を削除したことがないと仮定して有効である – Mohsin

+0

ご覧のとおり、クエリにはp.Cityフィールドも含まれています。 CityNameは表示用です。 DataGridViewや何らかの種類のグリッドを使用する場合は、単にCity列を非表示にして、CityName列を見せても同じ行にフルアクセスできるようにしてください。City hidden fields – Steve

+0

実際に私はlayerdアーキテクチャを使用しています。私は人のオブジェクトをdalレイヤーでretreivedデータで満たし、bllにデータを戻し、そこからplに戻します。私はこれでgridviewを使用していないよ。 – Mohsin

関連する問題