Arkasokak Logo





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 ...

Cevap
  #1  
Eski 19-07-2006, 07:40 PM
empedoCles kullanıcısının avatarı
Müdavim
 
Mesaj: 123
empedoCles kullanıcısına MSN aracılığı ile mesaj yolla
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...
imza

#include <middleeast.h>

#define ISRAELIS foul_beasts






Alıntı Yaparak Cevapla
Cevap

Konu Araçları
Görünüm Modları



Saat 11:03 AM.


Copyright ©2005 - 2008 Arkasokak.Net
Tasarım: NoDRaC
Bize Ulaşın - Gizlilik İlkesi - En Üst
Powered by vBulletin
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0