İnternet Teknoloji Tasarım icinde Ado.net konusu , ADO.NET Bu makalede SQL Server'dan connect ortamda veri çekeceğiz.Aslında makalenin amacı ado.net'in nesnelerini tanıtmak. VB 6.0 ' da database işlemleri yaparken bir connect birde recordset tanımlayıp tüm işlemlerimizi bu nesneleerle ...
![]() |
|
#1
| ||||
| ||||
| Ado.net ADO.NET Bu makalede SQL Server'dan connect ortamda veri çekeceğiz.Aslında makalenin amacı ado.net'in nesnelerini tanıtmak. VB 6.0 ' da database işlemleri yaparken bir connect birde recordset tanımlayıp tüm işlemlerimizi bu nesneleerle yapıyorduk.Ama artık ado.net'te işler böyle değil.Şimdi nesnelerimize bir göz atalım; Herşeyden önce şunu belirtelim database nesneleri System.Data.SqlClient namespace'i altında bulunurlar.Yani projemize bu namespace'i import etmemiz gerekir. Imports System.Data.SqlClient SqlConnection Class'ı hedef database'e bağlanmak için kullanırız.Hem connect ortamda hemde disconnect ortamda mutlaka bu nesne bulunmalıdır.Parametre olarak connectionstring verilir. Dim connstr As String = "Data source=.; initial catalog=Northwind; uid=sa; pwd=123" Dim conn As New SqlConnection(connstr) Connect ortamdan veri çekilirken mutlaka Open metodu kullanılmalıdır. conn.Open() SqlCommand Class'ı database'e bağlandıktan sonra verileri çekmek için bu nesneyi kullanırız.Yanlız bu nesne için sql cümlesini ve connection nesnesini belirtmek gerekir. cmd.Connection = conn cmd.CommandText = sql Önemli dört tane metodu vardır. - ExecuteReader : Verilen sql cümlesine göre verilerin akmasını sağlar. - ExecuteScalar : Sql cümlenizde bir aggregate function varsa bu metot ilk sütundaki ilk değeri alır. - ExecuteNonQuery : Bir T-SQL ifadeniz varsa (Insert,Update,Delete) yada stored procedure çaıltırmak için kullanılır. - ExecuteXMLReader : Sonucu xml olarak gönderir. Aşağıda metodların örnek kullanımları vardır; Dim reader As SqlDataReader = cmd.ExecuteReader() 1.Metot Örneği Dim kayit As Integer = cmd.ExecuteScalar() 2.Metot Örneği Dim kayit As Integer = cmd.ExecuteNonQuery() 3.Metot Örneği Dim xml As Xml.XmlReader = cmd.ExecuteXmlReader() 4.Metot Örneği SqlDataReader Class'ı Datareader nesnesi command nesnesi ile birlikte gelen verilen biriktirilmesini sağlar.Yani verilen bu nesnenin içinde birikirler.Elimizdeki verileri listelemek için bir döngü kullanmamzı gerekir.Önemli metodları ise; - Read : Datareader'de okunacak kayıt olduğu sürece True döndürür.Verileri listelemek için bu metotdan yararlanırız. - Close : Datareader'la işimiz bittiği zaman kapatmalıyız ki boşuna kaynakları harcamıyalım. - Get : Çağırılacak veri türü biliniyorsa ki bizim örneğimizdede var.Bu metod kullanılır. - GetValue : Alınacak veri türü bilinmiyorsa bu metodla almak daha mantıklıdır. - NextResult : Eğer birden fazla select ifadesi kullanıyorsak buradan gelen sonuçları iki küme olarak bu metodla alabiliriz. Şimdi ufak bir örnek yapalım; Sql Server'da Northwind database'inden Employees tablosundaki firstname ve lastname verilerini bir ListBox'a dolduralım; Imports System.Data.SqlClient Public Class Form3 Inherits System.Windows.Forms.Form #Region " Windows Form Designer generated code " Public Sub New() MyBase.New() 'This call is required by the Windows Form Designer. InitializeComponent() 'Add any initialization after the InitializeComponent() call End Sub 'Form overrides dispose to clean up the component list. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub '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. Friend WithEvents ListBox1 As System.Windows.Forms.ListBox <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.ListBox1 = New System.Windows.Forms.ListBox Me.SuspendLayout() ' 'ListBox1 ' Me.ListBox1.Location = New System.Drawing.Point(8, 8) Me.ListBox1.Name = "ListBox1" Me.ListBox1.Size = New System.Drawing.Size(176, 238) Me.ListBox1.TabIndex = 0 ' 'Form3 ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(296, 277) Me.Controls.Add(Me.ListBox1) Me.Name = "Form3" Me.Text = "Form3" Me.ResumeLayout(False) End Sub #End Region Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim connstr As String = "Data source=.; initial catalog=Northwind; uid=sa; pwd=123;" Dim sql As String = "select firstname,lastname from employees" Dim conn As New SqlConnection(connstr) Dim cmd As New SqlCommand(sql, conn) Dim reader As SqlDataReader Try conn.Open() ' bağlantımızı açtık Do While reader.Read 'Read metodu okunacak kayıt olduğu sürece True döndürür ListBox1.Items.Add(reader.GetString(0) & " " & reader.GetString(1)) 'reader.GetString(0) ise verilen sql cümlesindeki sütun adlarına göre çalışır.ilk sütun 0'dır.Array şeklinde... Loop Catch ex As Exception MessageBox.Show(ex.Message) Finally ' burası hata çıksada çıkmasada çalışır reader.Close() 'reader nesnesini kapattık conn.Close() 'connection nesnemizi kapattık End Try End Sub End Class Tabiki bu makale sadece başlangıç içindi.Bir sonraki makalede ise Disconnect ortamdan veri çekmeyi yazacağım. Görüşmek Üzere... ![]() #include <middleeast.h> #define ISRAELIS foul_beasts |