Вся проблема скорее всего заключается в SQL запросе. Называется это декартовое произведение.
Избежать этого можно изменением запроса.
Например.
Таблица областей - oblast.
id_obl int индетификатор области
name_obl varchar(50) наименование области
Таблица районов - raion.
id_rai int индетификатор района
id_obl int индетефикатор области
name_rai varchar(50) наименование района
Таблица населенных пунктов - punkt.
id_punkt int индетификатор нас.пункта
id_rai int индетификатор района
name_punkt varchar(50) наименование нас.пункта
Тогда запрос на выбор района будет таким:
SELECT name_rai
FROM dbo.oblast INNER JOIN
dbo.raion ON dbo.oblast.id_obl = dbo.raion.id_obl
where id_obl=<индетификатор выбранной области>
А запрос на выбор населеного пункта будет выглядеть вот так:
SELECT dbo.punkt.name_punkt
FROM dbo.raion INNER JOIN
dbo.punkt ON dbo.raion.id_rai = dbo.punkt.id_rai
where id_rai=<индетификатор выбранного района>
Успехов!!
|