logo
Welcome Guest! To enable all features please Giriş or Kayıt.

Bildirim

Icon
Error

Ayarlar
Son mesaja git Go to first unread
maytas  
#1 Gönderildi : 9 years ago
maytas

Sıralama: Advanced Member

Gruplar: Registered
Katılan: 24.11.2014(UTC)
Mesajlar: 34
Turkey

5 Kere Teşekkür Etti.
2 Mesajına Toplam 2 Kere Teşekkür Edildi.
SQL Server'de oluşturduğum tablonun kod alanına ayni kodun mükerrer girişini önlemek için unique key constrant oluşturdum.
Kayıt ekleme/güncelleme işlemini bir form üzerinden Linq to Sql metoduyla yapıyorum.
Doğal olarak var olan kodu tekrar girmeye çalıştığımda exception fırlatıyor, buraya kadar sorun yok.
Kodu deiğştirdiğimde ve mükerrer kayıt olmamasına rağmen ayni hatayı fırlatmaya devam ediyor, yani sıfırlayamıyor.
Formu kapatıp açtığımda sorun ortadan kalkıyor.
Böyle durumda her seferde formu açıp kapatmak kullanışlı değil.
Bu(ikinci) hata mesajını nasıl engellerim.
Kodlar aşağıda:
Kod:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
private void btnKaydet_Click(object sender, EventArgs e)
 {
     if (string.IsNullOrEmpty(txtGrupKodu.Text.Trim()))
     {
         txtGrupKodu.Focus();
         errorProvider1.SetError(txtGrupKodu, "Bu alanı boş geçemezsiniz.");
     }
     else if (string.IsNullOrEmpty(cmbOlcuBirimi.Text.Trim()))
     {
         cmbOlcuBirimi.Focus();
         errorProvider1.SetError(cmbOlcuBirimi, "Bu alanı boş geçemezsiniz.");
     }
     else if (string.IsNullOrEmpty(cmbGrupAdi.Text.Trim()))
     {
         cmbGrupAdi.Focus();
         errorProvider1.SetError(cmbGrupAdi, "Bu alanı boş geçemezsiniz.");
     }
     else
     {
         errorProvider1.Clear();
          
         if (string.IsNullOrEmpty(txtGrupID.Text.Trim()))
         {
             veriEkle();
         }
         else
         {
             veriGuncelle();
         }
 
         nesneleriKilitle();
         this.btnYeniKayit.Focus();
         this.btnKaydet.Enabled = false;
 
         changeSet = dc.GetChangeSet();
 
         try
         {                   
             dc.SubmitChanges();
             ListViewDoldur();
             ChangeSetCalistir();
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message);
         }
     }
 }
 
 private void veriEkle()
 {
     grupTablosu grup = new grupTablosu();
 
     grup.grupKodu = this.txtGrupKodu.Text;
     grup.olcuBirimi = this.cmbOlcuBirimi.Text;
     grup.grupAdi = this.cmbGrupAdi.Text;
 
     dc.grupTablosus.InsertOnSubmit(grup);
 }
 
 private void veriGuncelle()
 {
     int grupID = int.Parse(this.txtGrupID.Text);
 
     var guncellenecekVeri = (from m in dc.grupTablosus
                              where m.grupID == grupID
                              select m).Single();
     guncellenecekVeri.grupKodu = this.txtGrupKodu.Text;
     guncellenecekVeri.olcuBirimi = this.cmbOlcuBirimi.Text;
     guncellenecekVeri.grupAdi = this.cmbGrupAdi.Text;
 }
 
 void nesneleriAc()
 {
     this.txtGrupKodu.Enabled = true;
     this.cmbOlcuBirimi.Enabled = true;
     this.cmbGrupAdi.Enabled = true;
 }
 
 void nesneleriKilitle()
 {
     this.txtGrupKodu.Enabled = false;
     this.cmbOlcuBirimi.Enabled = false;
     this.cmbGrupAdi.Enabled = false;
 }
 
 void nesneleriTemizle()
 {
     this.txtGrupID.Text = null;
     this.txtGrupKodu.Text = null;
     this.cmbOlcuBirimi.Text = null;
     this.cmbGrupAdi.Text = null;
 }
 
 private void ListViewDoldur()
 {
     listView1.Columns.Clear();
     listView1.View = View.Details;
     listView1.GridLines = true;
     listView1.FullRowSelect = true;
 
     listView1.Columns.Add("GrupID", 55);
     listView1.Columns.Add("Grup Kodu", 100);
     listView1.Columns.Add("Ölçü Birimi", 100);
     listView1.Columns.Add("Grup Adı", 140);
 
     listView1.Items.Clear();
     foreach (grupTablosu item in dc.grupTablosus)
     {
         ListViewItem li = new ListViewItem(item.grupID.ToString());
         li.SubItems.Add(item.grupKodu);
         li.SubItems.Add(item.olcuBirimi);
         li.SubItems.Add(item.grupAdi);
         listView1.Items.Add(li);
     }
 }
 
 private void ChangeSetCalistir()
 {
     if (changeSet.Inserts.Count > 0)
     {
         MessageBox.Show("Kayıt başarıyla girilmiştir.", "Rapor", MessageBoxButtons.OK, MessageBoxIcon.Information);
     }
     else if (changeSet.Updates.Count > 0)
     {
         MessageBox.Show("Kayıt başarıyla güncellenmiştir.", "Rapor", MessageBoxButtons.OK, MessageBoxIcon.Information);
     }
     else if (changeSet.Deletes.Count > 0)
     {
         MessageBox.Show("Kayıt başarıyla silinmiştir.", "Rapor", MessageBoxButtons.OK, MessageBoxIcon.Information);
     }
 }


mehmetzekikir  
#2 Gönderildi : 9 years ago
mehmetzekikir

Sıralama: Administration

Gruplar: Administrators
Katılan: 6.05.2014(UTC)
Mesajlar: 672

19 Kere Teşekkür Etti.
152 Mesajına Toplam 253 Kere Teşekkür Edildi.
Originally Posted by: maytas Go to Quoted Post
SQL Server'de oluşturduğum tablonun kod alanına ayni kodun mükerrer girişini önlemek için unique key constrant oluşturdum.
Kayıt ekleme/güncelleme işlemini bir form üzerinden Linq to Sql metoduyla yapıyorum.
Doğal olarak var olan kodu tekrar girmeye çalıştığımda exception fırlatıyor, buraya kadar sorun yok.
Kodu deiğştirdiğimde ve mükerrer kayıt olmamasına rağmen ayni hatayı fırlatmaya devam ediyor, yani sıfırlayamıyor.
Formu kapatıp açtığımda sorun ortadan kalkıyor.
Böyle durumda her seferde formu açıp kapatmak kullanışlı değil.
Bu(ikinci) hata mesajını nasıl engellerim.
Kodlar aşağıda:
Kod:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
private void btnKaydet_Click(object sender, EventArgs e)
 {
     if (string.IsNullOrEmpty(txtGrupKodu.Text.Trim()))
     {
         txtGrupKodu.Focus();
         errorProvider1.SetError(txtGrupKodu, "Bu alanı boş geçemezsiniz.");
     }
     else if (string.IsNullOrEmpty(cmbOlcuBirimi.Text.Trim()))
     {
         cmbOlcuBirimi.Focus();
         errorProvider1.SetError(cmbOlcuBirimi, "Bu alanı boş geçemezsiniz.");
     }
     else if (string.IsNullOrEmpty(cmbGrupAdi.Text.Trim()))
     {
         cmbGrupAdi.Focus();
         errorProvider1.SetError(cmbGrupAdi, "Bu alanı boş geçemezsiniz.");
     }
     else
     {
         errorProvider1.Clear();
          
         if (string.IsNullOrEmpty(txtGrupID.Text.Trim()))
         {
             veriEkle();
         }
         else
         {
             veriGuncelle();
         }
 
         nesneleriKilitle();
         this.btnYeniKayit.Focus();
         this.btnKaydet.Enabled = false;
 
         changeSet = dc.GetChangeSet();
 
         try
         {                   
             dc.SubmitChanges();
             ListViewDoldur();
             ChangeSetCalistir();
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message);
         }
     }
 }
 
 private void veriEkle()
 {
     grupTablosu grup = new grupTablosu();
 
     grup.grupKodu = this.txtGrupKodu.Text;
     grup.olcuBirimi = this.cmbOlcuBirimi.Text;
     grup.grupAdi = this.cmbGrupAdi.Text;
 
     dc.grupTablosus.InsertOnSubmit(grup);
 }
 
 private void veriGuncelle()
 {
     int grupID = int.Parse(this.txtGrupID.Text);
 
     var guncellenecekVeri = (from m in dc.grupTablosus
                              where m.grupID == grupID
                              select m).Single();
     guncellenecekVeri.grupKodu = this.txtGrupKodu.Text;
     guncellenecekVeri.olcuBirimi = this.cmbOlcuBirimi.Text;
     guncellenecekVeri.grupAdi = this.cmbGrupAdi.Text;
 }
 
 void nesneleriAc()
 {
     this.txtGrupKodu.Enabled = true;
     this.cmbOlcuBirimi.Enabled = true;
     this.cmbGrupAdi.Enabled = true;
 }
 
 void nesneleriKilitle()
 {
     this.txtGrupKodu.Enabled = false;
     this.cmbOlcuBirimi.Enabled = false;
     this.cmbGrupAdi.Enabled = false;
 }
 
 void nesneleriTemizle()
 {
     this.txtGrupID.Text = null;
     this.txtGrupKodu.Text = null;
     this.cmbOlcuBirimi.Text = null;
     this.cmbGrupAdi.Text = null;
 }
 
 private void ListViewDoldur()
 {
     listView1.Columns.Clear();
     listView1.View = View.Details;
     listView1.GridLines = true;
     listView1.FullRowSelect = true;
 
     listView1.Columns.Add("GrupID", 55);
     listView1.Columns.Add("Grup Kodu", 100);
     listView1.Columns.Add("Ölçü Birimi", 100);
     listView1.Columns.Add("Grup Adı", 140);
 
     listView1.Items.Clear();
     foreach (grupTablosu item in dc.grupTablosus)
     {
         ListViewItem li = new ListViewItem(item.grupID.ToString());
         li.SubItems.Add(item.grupKodu);
         li.SubItems.Add(item.olcuBirimi);
         li.SubItems.Add(item.grupAdi);
         listView1.Items.Add(li);
     }
 }
 
 private void ChangeSetCalistir()
 {
     if (changeSet.Inserts.Count > 0)
     {
         MessageBox.Show("Kayıt başarıyla girilmiştir.", "Rapor", MessageBoxButtons.OK, MessageBoxIcon.Information);
     }
     else if (changeSet.Updates.Count > 0)
     {
         MessageBox.Show("Kayıt başarıyla güncellenmiştir.", "Rapor", MessageBoxButtons.OK, MessageBoxIcon.Information);
     }
     else if (changeSet.Deletes.Count > 0)
     {
         MessageBox.Show("Kayıt başarıyla silinmiştir.", "Rapor", MessageBoxButtons.OK, MessageBoxIcon.Information);
     }
 }




Birde kodlarını try catch blogu içerisinde yazarak dener misin ?
Yeniden geri döndük
2025
maytas  
#3 Gönderildi : 9 years ago
maytas

Sıralama: Advanced Member

Gruplar: Registered
Katılan: 24.11.2014(UTC)
Mesajlar: 34
Turkey

5 Kere Teşekkür Etti.
2 Mesajına Toplam 2 Kere Teşekkür Edildi.
Originally Posted by: mehmetzekikir Go to Quoted Post


Birde kodlarını try catch blogu içerisinde yazarak dener misin ?


Sanırım, gözünüzden kaçtı, Try catch bloğu zaten var.

Kod:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
private void btnKaydet_Click(object sender, EventArgs e)
 {
     if (string.IsNullOrEmpty(txtGrupKodu.Text.Trim()))
     {
         txtGrupKodu.Focus();
         errorProvider1.SetError(txtGrupKodu, "Bu alanı boş geçemezsiniz.");
     }
     else if (string.IsNullOrEmpty(cmbOlcuBirimi.Text.Trim()))
     {
         cmbOlcuBirimi.Focus();
         errorProvider1.SetError(cmbOlcuBirimi, "Bu alanı boş geçemezsiniz.");
     }
     else if (string.IsNullOrEmpty(cmbGrupAdi.Text.Trim()))
     {
         cmbGrupAdi.Focus();
         errorProvider1.SetError(cmbGrupAdi, "Bu alanı boş geçemezsiniz.");
     }
     else
     {
         errorProvider1.Clear();
           
         if (string.IsNullOrEmpty(txtGrupID.Text.Trim()))
         {
             veriEkle();
         }
         else
         {
             veriGuncelle();
         }
  
         nesneleriKilitle();
         this.btnYeniKayit.Focus();
         this.btnKaydet.Enabled = false;
  
         changeSet = dc.GetChangeSet();
  
         [b]try
         {                   
             dc.SubmitChanges();
             ListViewDoldur();
             ChangeSetCalistir();
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message);
         }[/b]
     }
 }


mehmetzekikir  
#4 Gönderildi : 9 years ago
mehmetzekikir

Sıralama: Administration

Gruplar: Administrators
Katılan: 6.05.2014(UTC)
Mesajlar: 672

19 Kere Teşekkür Etti.
152 Mesajına Toplam 253 Kere Teşekkür Edildi.
Originally Posted by: maytas Go to Quoted Post
Originally Posted by: mehmetzekikir Go to Quoted Post


Birde kodlarını try catch blogu içerisinde yazarak dener misin ?


Sanırım, gözünüzden kaçtı, Try catch bloğu zaten var.

Kod:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
private void btnKaydet_Click(object sender, EventArgs e)
 {
     if (string.IsNullOrEmpty(txtGrupKodu.Text.Trim()))
     {
         txtGrupKodu.Focus();
         errorProvider1.SetError(txtGrupKodu, "Bu alanı boş geçemezsiniz.");
     }
     else if (string.IsNullOrEmpty(cmbOlcuBirimi.Text.Trim()))
     {
         cmbOlcuBirimi.Focus();
         errorProvider1.SetError(cmbOlcuBirimi, "Bu alanı boş geçemezsiniz.");
     }
     else if (string.IsNullOrEmpty(cmbGrupAdi.Text.Trim()))
     {
         cmbGrupAdi.Focus();
         errorProvider1.SetError(cmbGrupAdi, "Bu alanı boş geçemezsiniz.");
     }
     else
     {
         errorProvider1.Clear();
           
         if (string.IsNullOrEmpty(txtGrupID.Text.Trim()))
         {
             veriEkle();
         }
         else
         {
             veriGuncelle();
         }
  
         nesneleriKilitle();
         this.btnYeniKayit.Focus();
         this.btnKaydet.Enabled = false;
  
         changeSet = dc.GetChangeSet();
  
         [b]try
         {                   
             dc.SubmitChanges();
             ListViewDoldur();
             ChangeSetCalistir();
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message);
         }[/b]
     }
 }




orayı görmedim :)

kodu denemeden birşey diyemem teker teker debug yapmak lazım
Yeniden geri döndük
2025
maytas  
#5 Gönderildi : 9 years ago
maytas

Sıralama: Advanced Member

Gruplar: Registered
Katılan: 24.11.2014(UTC)
Mesajlar: 34
Turkey

5 Kere Teşekkür Etti.
2 Mesajına Toplam 2 Kere Teşekkür Edildi.
Olayın hataya düşmesini önlemek için kayetmeden önce ilgili kodun tabloda var olup olmadığını kontrol ettiriyorum, ondan sonra kaydediyorum.
Böylece mükerrer kayıt ihtimalini ortadan kaldırmış oluyoruz.


Bu konudaki kullanıcılar
Guest
Forumu Atla  
Bu foruma yeni konular postalayamazsınız.
Bu forumda ki konulara yeni posta gönderemezsiniz.
Bu forumdaki postalarınızı silemezsiniz.
Bu forumdaki postalarınızı düzenleyemezsiniz.
Bu forumda anketler yaratamazsınız.
Bu forumdaki anketlere oy veremezsiniz.