İl - İlçe - Semt - Mahalle Veritabanları ve Uygulaması
Yazılımlarınızda gerekli olur diyerek böyle bir yazı yazayım dedim. Hem çeşitli tipteki veritabanlarını hem de ASP.NET uygulamasını bu yazıda bulabileceksiniz.
Önce çeşitli tiplerdeki veritabanlarını paylaşayım:
MySQL:
- Ayrı ayrı indirmek isteyebilirsiniz: İller, ilçeler, semtler, mahalleler.
- İl-ilçe-Semt-Mahalle-PostaKodu / Latin1
- İl-ilçe-Semt-Mahalle-PostaKodu / Latin5
- İl-ilçe-Semt-Mahalle-PostaKodu / UTF8
Access:
Excel:
XML:
SQL Server:
- İl-ilçe-Semt-Mahalle-PostaKodu (Script dosyası, .sql)
- İl-ilçe-Semt-Mahalle-PostaKodu (SQL Server dosyası, .mdf)
Şimdi de sizlerle uygulama örneğini paylaşayım:
Uygulamamız ASP.NET ortamında C# ile hazırlandı.
Örnek ekran görüntüleri:
Sayfa tasarımı kodları:
<div> <asp:DropDownList ID="ddlIller" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlIller_SelectedIndexChanged" /> <br /> <asp:DropDownList ID="ddlIlceler" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlIlceler_SelectedIndexChanged" Enabled="false" /> <br /> <asp:DropDownList ID="ddlSemtler" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlSemtler_SelectedIndexChanged" Enabled="false" /> <br /> <asp:DropDownList ID="ddlMahalleler" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlMahalleler_SelectedIndexChanged" Enabled="false" /> <br /> <asp:Button ID="btnBilgileriGetir" runat="server" Text="Bilgileri Getir" OnClick="btnBilgileriGetir_Click" Enabled="false" /> <asp:Label ID="lblBilgiler" runat="server" Visible="false" /> </div>
Bilgilerin okunması ile ilgili kodlar:
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { HelperDB helperDB = new HelperDB(); string sql = "select IL_ID, IL_ADI from il order by IL_ADI"; ddlIller.DataSource = helperDB.ExecuteDataTable(sql); ddlIller.DataTextField = "IL_ADI"; ddlIller.DataValueField = "IL_ID"; ddlIller.DataBind(); ddlIller.Items.Insert(0, new ListItem("(Seçiniz)", "0")); } } protected void ddlIller_SelectedIndexChanged(object sender, EventArgs e) { ddlIlceler.Items.Clear(); ddlSemtler.Items.Clear(); ddlMahalleler.Items.Clear(); ddlSemtler.Enabled = false; ddlMahalleler.Enabled = false; btnBilgileriGetir.Enabled = false; lblBilgiler.Visible = false; int id = ddlIller.SelectedValue.ToInt32(); if (id == 0) { ddlIlceler.Enabled = false; return; } HelperDB helperDB = new HelperDB(); string sql = "select ILCE_ID, ILCE_ADI from ilce where IL_ID=?il order by ILCE_ADI"; MySqlParameter p = new MySqlParameter("?il", MySqlDbType.Int32); p.Value = id; ddlIlceler.DataSource = helperDB.ExecuteDataTable(sql, p); ddlIlceler.DataTextField = "ILCE_ADI"; ddlIlceler.DataValueField = "ILCE_ID"; ddlIlceler.DataBind(); ddlIlceler.Items.Insert(0, new ListItem("(Seçiniz)", "0")); ddlIlceler.Enabled = true; } protected void ddlIlceler_SelectedIndexChanged(object sender, EventArgs e) { ddlSemtler.Items.Clear(); ddlMahalleler.Items.Clear(); ddlMahalleler.Enabled = false; btnBilgileriGetir.Enabled = false; lblBilgiler.Visible = false; int id = ddlIlceler.SelectedValue.ToInt32(); if (id == 0) { ddlSemtler.Enabled = false; return; } HelperDB helperDB = new HelperDB(); string sql = "select SEMT_ID, SEMT_ADI from semt where ILCE_ID=?ilce order by SEMT_ADI"; MySqlParameter p = new MySqlParameter("?ilce", MySqlDbType.Int32); p.Value = id; ddlSemtler.DataSource = helperDB.ExecuteDataTable(sql, p); ddlSemtler.DataTextField = "SEMT_ADI"; ddlSemtler.DataValueField = "SEMT_ID"; ddlSemtler.DataBind(); ddlSemtler.Items.Insert(0, new ListItem("(Seçiniz)", "0")); ddlSemtler.Enabled = true; } protected void ddlSemtler_SelectedIndexChanged(object sender, EventArgs e) { ddlMahalleler.Items.Clear(); btnBilgileriGetir.Enabled = false; lblBilgiler.Visible = false; int id = ddlSemtler.SelectedValue.ToInt32(); if (id == 0) { ddlMahalleler.Enabled = false; return; } HelperDB helperDB = new HelperDB(); string sql = "select MAH_ID, MAHALLE_ADI from mahalle_koy where SEMT_ID=?semt order by MAHALLE_ADI"; MySqlParameter p = new MySqlParameter("?semt", MySqlDbType.Int32); p.Value = id; ddlMahalleler.DataSource = helperDB.ExecuteDataTable(sql, p); ddlMahalleler.DataTextField = "MAHALLE_ADI"; ddlMahalleler.DataValueField = "MAH_ID"; ddlMahalleler.DataBind(); ddlMahalleler.Items.Insert(0, new ListItem("(Seçiniz)", "0")); ddlMahalleler.Enabled = true; } protected void ddlMahalleler_SelectedIndexChanged(object sender, EventArgs e) { lblBilgiler.Visible = false; int id = ddlSemtler.SelectedValue.ToInt32(); if (id == 0) { btnBilgileriGetir.Enabled = false; return; } btnBilgileriGetir.Enabled = true; } protected void btnBilgileriGetir_Click(object sender, EventArgs e) { lblBilgiler.Text = string.Format( @" <br/> <br/> İl: {0} - {1} <br/> İlçe: {2} - {3} <br/> Semt: {4} - {5} <br/> Mahalle - Köy: {6} - {7} ", ddlIller.SelectedValue, ddlIller.SelectedItem.Text, ddlIlceler.SelectedValue, ddlIlceler.SelectedItem.Text, ddlSemtler.SelectedValue, ddlSemtler.SelectedItem.Text, ddlMahalleler.SelectedValue, ddlMahalleler.SelectedItem.Text); lblBilgiler.Visible = true; }
Programda, HelperDB, birkaç genişletme metodu, ve MySQL dll leri kullanılmıştır.
Program kodlarını buradan indirebilirsiniz.
Notlar:
- Yukarıdaki kodlar Default.aspx'teki kodlardır. Ayrıca aynı örneğin UpdatePanel kullanılarak gerçekleştirilmiş hali de Default2.aspx'tedir.
- MySQL ConnectionString bilgisini web.config ten değiştirebilirsiniz.
- Örnek MySQL DB'si ni de örnek uygulama klasöründe bulabilirsiniz.
Herkese kolay gelsin.
#MySQL #il #ilçe #mahalle #semt #posta-kodu #access #excel #sql-server #xml #latin1 #latin5 #utf8