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

Hiç yorum yok: