SqlClient.SqlBulkCopy Kullanmak
Kadere İnanmak
İnsanların aslında yaptığı tüm seçimler geleceğini etkileyebiliyor. İnsan başına kötü bir olay geldiğinde asla hayata küsmemeli ve aksine daha da fazla asılmalı. Her karanlık gecenin sonu sabahtır. Her insanın kader çizgisi var ve “Herşeyin hayırlısı Allah’tan” diyerek uyku moduna geçiyorum.
WPF Toolkit June 2009 Release
- Toolkit'te
- DataGrid
- DatePicker
- Calendar
- VisualStateManager
yanısıra Chart kontrolu de eklendi. İleri ki günlerde bununla ilgil küçük bir örnek proje yayınlayacağım. Microsoft .NET Framework 3.5 Service Pack 1 + VS2008 makinanızda yüklü olması gerkiyor.
İyi çalışmalar
Blogdaki Kodları Visual Studio'daki Gibi Gösterme (CopySourceAsHtml)
Blogtaki yayınlanacak kodlar için visual studiodaki görüntüyü nasıl elde ederim diye internette şöyle bir arama yaptırdım. Kullanımı gayet basit kullanışlı bir ücretsiz tool buldum ve sizlerle paylaşmak istedim. VS 2003, VS 2005 ve VS 2008 versiyonu bulunan tool kurulumdan sonra seçtiğiniz kod kısmınını üzerinde mouse ' un sağ butonuna basıyorsunuz. Seçeneklerden Copy As Html'i seçiyorsunuz. İstediğiniz yere yapıtıryorsunuz. İşte bu kadar basit ;))
İyi günler iyi çalışmalar.
VB.net İle XML Okuma ve Yazma 3
Bu makalemizde projemizin son kısmını tamamlayacağız. Koleksiyonumuza yeni kayıt ekleme, silme değiştirme ve form kapanırken koleksiyonumuzu xml şeklinde sabit diskimize yazdıracağız
Yeni Kayıt Ekleme:
Burda dikkat edeceğimiz en önemli nokta, kolleksiyonumuz ordered dictionary (benzersiz anahtar, object) olarak objeleri tuttuğu için müşteri numaramız bizim benzersiz anahtarımız olacaktır. Bunu kodla da edeceğiz.

48 Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
49
50 If _AddMode Then
51 If txtCustomerNumber.Text.Trim = vbNullString Then
52 MsgBox("Müşteri numarası boş geçilemez", MsgBoxStyle.Critical, Me.Text)
53 txtCustomerNumber.Focus()
54 Exit Sub
55 End If
56 If Not IsNumeric(txtCustomerNumber.Text.Trim) Then
57 MsgBox("Müşteri numarası numerik bir değer olmalıdır.", MsgBoxStyle.Critical, Me.Text)
58 txtCustomerNumber.Focus()
59 Exit Sub
60 End If
61 Dim C As Customer = _Customers(CInt(txtCustomerNumber.Text.Trim).ToString)
62 If C IsNot Nothing Then
63 MsgBox("Bu müşteri numarası sistemde bulunmaktadır." & vbCrLf & "Lütfen müşteri no yu değiştiriniz.", MsgBoxStyle.Critical, Me.Text)
64 txtCustomerNumber.Focus()
65 Exit Sub
66 End If
67 If txtName.Text.Trim = vbNullString Then
68 MsgBox("Müşteri adı boş geçilemez", MsgBoxStyle.Critical, Me.Text)
69 txtName.Focus()
70 Exit Sub
71 End If
72 If txtSurname.Text.Trim = vbNullString Then
73 MsgBox("Müşteri soyadı boş geçilemez", MsgBoxStyle.Critical, Me.Text)
74 txtSurname.Focus()
75 Exit Sub
76 End If
77 With _Customer
78 .Name = txtName.Text.Trim
79 .Surname = txtSurname.Text.Trim
80 .CustomerNumber = Int(txtCustomerNumber.Text.Trim)
81 End With
82 _Customers.Add(_Customer)
83 End Sub
Kayıtları Güncelleme
Bir önceki makalemizdeki listview itemlerinin tag larına yüklediğimiz müşteri numaları ile objemizi oluşturup diğer formumuza objeyi göndereceğiz.
50 #Region " ListView1_MouseDoubleClick"
51 Private Sub ListView1_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListView1.MouseDoubleClick
52 If e.Button = Windows.Forms.MouseButtons.Left Then
53 If ListView1.SelectedItems.Count > 0 Then
54 Dim frm As New frmDetails
55 frm.Customers = Customers
56 frm.Customer = Customers(ListView1.SelectedItems(0).Tag.ToString)
57 frm.AddMode = False
58 Dim DR As DialogResult = frm.ShowDialog
59 If DR = Windows.Forms.DialogResult.OK Then
60 Customers = frm.Customers
61 FillListview()
62 End If
63
64 End If
65 End If
66
67 End Sub
68 #End Region
Diğer formun load olayında değerleri yükleyeceğiz. Değişiklikleri kaydedeceğiz.
33 #Region " frmLoad"
34 Private Sub frmDetails_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
35 If Not _AddMode Then
36 With _Customer
37 txtCustomerNumber.Text = .CustomerNumber.ToString
38 txtCustomerNumber.Enabled = False
39 txtName.Text = .Name
40 txtSurname.Text = .Surname
41 End With
42 Else
43 _Customer = New Customer
44 End If
45 End Sub
46 #End Region
81 #Region " btnOK"
82 Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
83
84 If Not _AddMode Then
85
86
87 If txtName.Text.Trim = vbNullString Then
88 MsgBox("Müşteri adı boş geçilemez", MsgBoxStyle.Critical, Me.Text)
89 txtName.Focus()
90 Exit Sub
91 End If
92 If txtSurname.Text.Trim = vbNullString Then
93 MsgBox("Müşteri soyadı boş geçilemez", MsgBoxStyle.Critical, Me.Text)
94 txtSurname.Focus()
95 Exit Sub
96 End If
97
98 With _Customers(_Customer.CustomerNumber.ToString)
99 .Name = txtName.Text.Trim
100 .Surname = txtSurname.Text.Trim
101 End With
102 End If
103 Me.DialogResult = Windows.Forms.DialogResult.OK
104 Me.Close()
105 End Sub
106 #End Region
Silme İşlemi
Listview deki itemleri seçtiğimiz an Sil butonu aktif hale getirip, koleksiyondan sileceğiz

69 #Region " btnDelete"
70 Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
71 If ListView1.SelectedItems.Count > 0 Then
72 Dim MSDR As MsgBoxResult = MsgBox(" Bu müşteriyi silmek istediğinizden emin misiniz", MsgBoxStyle.YesNo, Me.Text)
73 If MSDR = MsgBoxResult.Yes Then
74 Customers.Remove(ListView1.SelectedItems(0).Tag.ToString)
75 FillListview()
76 End If
77 Else
78 MsgBox("Lütfen silmek istediğiniz müşteriyi seçiniz", MsgBoxStyle.Critical, Me.Text)
79 Exit Sub
80 End If
81 End Sub
82 #End Region
XML'i sabit diske yazma
Form kapanırken XML 'i sabit diskte saklayacağız.
17 Private Sub frmList_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
18 Dim XW As New Xml.XmlTextWriter("C:\C\Customers.Xml", System.Text.Encoding.Default)
19 XW.Formatting = Xml.Formatting.Indented
20 Customers.WriteXML(XW)
21 End Sub
Projeyi buradan indirebilirsiniz
VB.net İle XML Okuma ve Yazma 2
Makalemizin ikinci bölümünde en kritik noktalardan biri olan objelerimiz ve objelerimizi bir arada tutan collectionlar kavramını işleyeceğiz.. XML yazma ve okuma fonksiyon olarak kolleksiyonumuzda olacak. Kolleksiyonumuz Ordered Dictionary şeklinde class larımızı tutacağız.
Objelerimizde Müşteri Id (Tekil alan), Name, Surname şeklinde olacaktır
1 #Region " Customer"
2 Public Class Customer
3 #Region " Declarations"
4 Private _CustomerNumber As Integer
5 Private _Name As String
6 Private _Surname As String
7 #End Region
8 #Region " Properties"
9 Public Property CustomerNumber() As Integer
10 Get
11 Return _CustomerNumber
12 End Get
13 Set(ByVal value As Integer)
14 _CustomerNumber = value
15 End Set
16 End Property
17 Public Property Name() As String
18 Get
19 Return _Name
20 End Get
21 Set(ByVal value As String)
22 _Name = value
23 End Set
24 End Property
25 Public Property Surname() As String
26 Get
27 Return _Surname
28 End Get
29 Set(ByVal value As String)
30 _Surname = value
31 End Set
32 End Property
33 #End Region
34 End Class
35 #End Region
36 #Region " Customers"
37 Public Class Customers
38 Implements IEnumerable, IEnumerator
39 Dim List As System.Collections.Specialized.OrderedDictionary
40 Dim Position As Integer = -1
41 Public Sub New()
42 List = New System.Collections.Specialized.OrderedDictionary
43
44 End Sub
45 Public Sub Add(ByVal Value As Customer)
46 List.Add(Value.CustomerNumber.ToString, Value)
47 End Sub
48 Default Public ReadOnly Property Item(ByVal Index As Integer) As Customer
49 Get
50 Return CType(List(Index), Customer)
51 End Get
52 End Property
53 Default Public ReadOnly Property Item(ByVal Key As String) As Customer
54 Get
55 Return CType(List(Key), Customer)
56 End Get
57 End Property
58 Public Sub Remove(ByVal Key As String)
59 List.Remove(Key)
60 End Sub
61 Public Sub Remove(ByVal Index As Integer)
62 List.RemoveAt(Index)
63 End Sub
64 Public ReadOnly Property Count() As Integer
65 Get
66 Return List.Count
67 End Get
68 End Property
69 Public Sub Clear()
70 List.Clear()
71 End Sub
72 Public ReadOnly Property Current() As Object Implements System.Collections.IEnumerator.Current
73 Get
74 Return CType(List(Position), Customer)
75 End Get
76 End Property
77 Public Function MoveNext() As Boolean Implements System.Collections.IEnumerator.MoveNext
78 Position += 1
79 Return Position < List.Count
80 End Function
81 Public Sub Reset() Implements System.Collections.IEnumerator.Reset
82 Position = -1
83 End Sub
84 Public Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator
85 Position = -1
86 Return CType(Me, IEnumerator)
87 End Function
88 Public Sub WriteXML(ByVal XW As Xml.XmlWriter)
89 XW.WriteStartDocument()
90 XW.WriteStartElement("Customers")
91 For Each C As Customer In Me
92 XW.WriteStartElement("Customer")
93 XW.WriteAttributeString("CustomerNumber", C.CustomerNumber.ToString)
94 XW.WriteAttributeString("Name", C.Name)
95 XW.WriteAttributeString("Surname", C.Surname)
96 XW.WriteEndElement()
97 Next
98 XW.WriteEndElement()
99 XW.WriteEndDocument()
100 XW.Flush()
101 XW.Close()
102 End Sub
103 Public Sub ReadXML(ByVal XR As Xml.XmlReader)
104 Me.Clear()
105 While XR.Read
106 Select Case XR.NodeType
107 Case Xml.XmlNodeType.Element
108 Select Case XR.Name
109 Case "Customer"
110 Dim C As New Customer
111 While XR.MoveToNextAttribute
112 With C
113 Select Case XR.Name
114 Case "CustomerNumber"
115 .CustomerNumber = CInt(XR.Value)
116 Case "Name"
117 .Name = XR.Value
118 Case "Surname"
119 .Surname = XR.Value
120 End Select
121 End With
122 End While
123 Me.Add(C)
124 End Select
125 End Select
126 End While
127 XR.Close()
128 End Sub
129 End Class
130 #End Region
İlk formumuzda bir önceki makalemizde yaptığmız listview’I kullanacağız.Form Load olayında Read XML ile bilgilieri kolleksiyona alıp listview I dolduracağız. Listview öğelerinin taglarına müşterilerin numaralarını atayacağız.
2 #Region " Declarations"
3 Dim Customers As New Customers
4 #End Region
5 #Region " frmEvents"
6 Private Sub frmList_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
7 If IO.Directory.Exists("C:\C") Then
8 If IO.File.Exists("C:\C\Customers.Xml") Then
9 Customers.ReadXML(New Xml.XmlTextReader("C:\C\Customers.Xml"))
10 End If
11 Else
12 IO.Directory.CreateDirectory("C:\C")
13 End If
14
15 FillListview()
16 End Sub
17 Private Sub frmList_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
18 Dim XW As New Xml.XmlTextWriter("C:\C\Customers.Xml", System.Text.Encoding.Default)
19 XW.Formatting = Xml.Formatting.Indented
20 Customers.WriteXML(XW)
21 End Sub
22 #End Region
23 #Region " PrivateMethods"
24 Public Sub FillListview()
25 ListView1.Items.Clear()
26 If Customers.Count > 0 Then
27 For Each C As Customer In Customers
28 Dim Li As ListViewItem = ListView1.Items.Add(C.CustomerNumber.ToString)
29 Li.SubItems.Add(C.Name)
30 Li.SubItems.Add(C.Surname)
31 Li.Tag = C.CustomerNumber
32 Next
33 End If
34
35 End Sub
36 #End Region

Devamı bir sonraki makalemizde
