Üye Kayıt Üye Giriş

Dataset Kavramı - II


Dataset Kavramı - II

 

Dataset, Veri kaynagindan (veritabani xml dosyasi) yakalanmis bir verinin hafizada keslenmesini saglar ve ADO.NET mimarisinin önemli komponenti durumundandir. Bir önceki makalemizde datasetimizin içerisine bir tane datatable eklemis ve daha fazla DataTable'inda eklenebilecegini belirtmistik. Datasetler; DataRelation objesiyle iliskilendirilen DataTable koleksiyonlaridir. Table'lar arasinda UniqueConstraint and ForeingConstraint objeleri ile veri bütünlügünü artirabiliriz. Veri tabanlarimizdaki veri bütünlügünü de bu sekilde programlara yansitmis oluruz. Bu konuyla ilgili örnegimiz asagida yer almaktadir.

Asagidaki örnekte iller tablosu ve ilçeler tablosunu dinamik olarak kodlarla nasil iliskilendirecegimizi görecegiz. Ilceler Tablosu (PK_Ilce_ID, Ilce_Ad) Iller Tablosu (PK_Il_ID, FK_Ilce_ID, Il_Ad) olsun .

 

 

    private static void VeriBaglantisi(string connectionString)
        {
            //Belirtecegimiz baglanti cümleri ile veritabani baglantisi gerçeklestirilir
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                //   Ilceler Tablsu için SqlDataAdapter olusturulur
                SqlDataAdapter adapter = new SqlDataAdapter();

                // Bir tablo adi ile map edilir
                adapter.TableMappings.Add("Table", "Iller");

                // Baglanti açilir
                connection.Open();

                // Ilce verilerini getirmek üzere SqlCommand olusturulur
                SqlCommand command = new SqlCommand(
                    "SELECT PK_Il_ID, Il_Ad FROM dbo.Iller;",
                    connection);
                command.CommandType = CommandType.Text;

                //  SqlDataAdapter in SelectCommand set edilir
                adapter.SelectCommand = command;

                // DataSet içi doldurulur.
                DataSet dataSet = new DataSet("Iller");
                adapter.Fill(dataSet);

                // Ayni islemler Iller tablosu için gerçeklestirilir
                // Ilclerer tablosu Il tablosunun çocugu durumundadir
                SqlDataAdapter ilcelerAdapter = new SqlDataAdapter();
                ilcelerAdapter.TableMappings.Add("Table", "Ilceler");

                SqlCommand ilcelerCommand = new SqlCommand(
                    "SELECT PK_Ilce_ID, Ilce_Ad FROM dbo.Ilceler;",
                    connection);
                ilcelerAdapter.SelectCommand = ilcelerCommand;

                // DataSet içi doldurulur. 
                ilcelerAdapter.Fill(dataSet);

                // baglanti kapatilir
                connection.Close();

                // Iki tablo arasinda iliski kurulur
                // based on the SupplierID.
                DataColumn anaColumn =
                    dataSet.Tables["Iller"].Columns["PK_Il_ID"];
                DataColumn cocukColumn =
                    dataSet.Tables["Ilceler"].Columns["FK_Il_ID"];
                DataRelation iliskilendirme =
                    new System.Data.DataRelation("IllerIlceler",
                    anaColumn, cocukColumn);
                dataSet.Relations.Add(iliskilendirme);
            }
        }

 

      Böylelikle her yeni bir ilce olustugunda var olamayan bir ili Ilceler tablosuna koymamiza olanak kalmayacaktir. Veri bütünlügü bu sayede veritabanin disina çikmistir ve tablolar arasindaki iliskiler olasi hatalarin önüne geçmemize yardimci olacaktir.

Bilgisayar Dershanesi Ders Sahibi;
Bilgisayar Dershanesi

Yorumlar

Yorum Yapabilmek İçin Üye Girişi Yapmanız Gerekmektedir.

ETİKETLER