|
#1
| ||||
| ||||
| ADO.NET II(Disconnect processes) ADO.NET II Bu makalede ise SQL Server kullanarak hedef databasedeki verileri Disconnect olarak çekeceğiz.Bu işlem için yine bir connection nesnesi kullanacağız fakat bu sefer connection nesnemizi Open metpduyla açmayacağız.Disconnect olarak çalıştığımız için arka tarafta zaten connection nesnemiz açılacak bir seferde belirtilen sql cümlesine göre tüm kayıtlar çeklicek ve biz bu işlemleri DataSet dediğimiz bir ortamda gerçekleştireceğiz.Şimdi farklı Class'larımızı bir inceleyelim. SqlClient namespace'ini import etmeyi unutmayın... SqlDataAdapter Class'ı Bu class'ıda SqlCommand nesnesi gibi düşünebilirsiniz.Ama SqlDataAdapter nesnesi daha avantajlıdır.Şöyleki; Kayıtlar arasında ileri ve geriye doğru hareket edebiliriz.Update işlemleri dahada kolay ve hızlı şekilde yapılır.Bunlar avantajların bazıları...En çok kullanılan ve önemli metodu ise Fill metodudur.Belirtilen DataSet'in içini doldurmaya yarar. da.Fill(ds) Tabi burada DataSet yerine DataTable'da doldurabilirdik... DataTable Class'ı DataTable nesnesi verilerin bulunduğu alandır.DataTable nesnesi DataSet'i oluşturan en küçün birim olarakta tanımlanabilir. Columns property'si ile o kolona ait özellikler alınabilir, Rows property'si ile o row'a ait bilgiler alınabilir. DefaulkView property'si ile DataTable nesnesinin içinde bulunan değerler aynen yansıtılır. Accept Changes metodu ile DataTable nesnesindeki değişiklikleri kabul ederiz. Reject Changes metodu ile DataTable nesnesinde yapılan değişiklikleri geri almış oluruz. Clear metodu ile DataTable içindeki tüm bilgiler silinir.Dikkat : Sadece DataTable nesnesinden SQL'den değil! NewRow metodu ilede DataTable içinde yeni bir satır oluştururuz. DataSet Class'ı DataSet içinde DataTable'ları ilişkileri barındıran bir alan olarak anlatılabilir.Genelde ilişkilendirme gibi işlemler yapılacaksa DataSet üzerinden gidilmesi daha mantıklıdır.DataSet kullanılarak DataGrid doldurulacaksa şöyle yazılmalıdır; DataGrid1.DataSource = ds.Tables(0) : Tables'a bir index değeri verilir.Bu array şeklindedir.DataSet'in içindeki DataTable'ların numarasıdır. DataTable kullanmasak bile arka tarafta bizim için bir datatable nesnesi oluşturulur. DataRelation Class'ı Bu nesne kullanılarak ilişkilendirme yapabiliriz.İlişkilendirme yaparken DataTable nesnelerimizi kullanırız.Önemli nokta bu nesne mutlaka DataSet içinde kullanılmasıdır. Şimdi bir örnek yapalım.Yine Northwind tablosundaki verieri bu sefer disconnect olarak bir DataGrid'in içine dolduralım; Imports System.Data.SqlClient PublicClass Form1 Inherits System.Windows.Forms.Form #Region " Windows Form Designer generated code " PublicSubNew() MyBase.New() 'This call is required by the Windows Form Designer. InitializeComponent() 'Add any initialization after the InitializeComponent() call EndSub 'Form overrides dispose to clean up the component list. ProtectedOverloadsOverridesSub Dispose(ByVal disposing AsBoolean) If disposing Then IfNot (components IsNothing) Then components.Dispose() EndIf EndIf MyBase.Dispose(disposing) EndSub 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. FriendWithEvents DataGrid1 As System.Windows.Forms.DataGrid <System.Diagnostics.DebuggerStepThrough()> PrivateSub InitializeComponent() Me.DataGrid1 = New System.Windows.Forms.DataGrid CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).BeginIni t() Me.SuspendLayout() ' 'DataGrid1 ' Me.DataGrid1.DataMember = "" Me.DataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText Me.DataGrid1.Location = New System.Drawing.Point(0, 0) Me.DataGrid1.Name = "DataGrid1" Me.DataGrid1.Size = New System.Drawing.Size(464, 328) Me.DataGrid1.TabIndex = 0 ' 'Form1 ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(520, 341) Me.Controls.Add(Me.DataGrid1) Me.Name = "Form1" Me.Text = "Form1" CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).EndInit( ) Me.ResumeLayout(False) EndSub #EndRegion PrivateSub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load Dim conn AsNew SqlConnection("Data source=.; initial catalog=Northwind; uid=sa; pwd=123;") Dim da AsNew SqlDataAdapter("select firstname from Employees", conn) Dim ds AsNew DataSet Try da.Fill(ds) DataGrid1.DataSource = ds.Tables(0) Catch ex As Exception MessageBox.Show(ex.Message) EndTry EndSub EndClass ![]() #include <middleeast.h> #define ISRAELIS foul_beasts |