En iyi yanıtlayıcılar
VERİ TABANINA KAYIT YAPARKEN BOŞ GEÇEN TEXTBOXLARIN HATA VERMESİ

Soru
-
Merhaba arkadaşlar,
Basit bir form oluşturup üzerine birkaç tane textbox yerleştirdim.Bu textboxlara girilen değerler Acces veritabanına yazdırması lazım ve yazdırıyor da sıkıntı yok. Fakat textboxları boş bırakınca resimdeki hatayı alıyor.
Ayrıca aşağıdaki gibi bir kodlama yaptım ve boş olan değerlerin yerine "Boş" yazdırmaya başladı. Fakat bu seferde boş bırakmayıp birşeyler yazınca hata vermeye başladı.
yardımcı olursanız sevinirim :)
if (textbox1=="") { textbox1.Text="Boş"; }
Yanıtlar
-
BosAlanDoldur hatali ama zaten gereksiz ("Boş" yazman gerekiyorsa asagida "" yerine yaz):
public partial class Form5 : Form { public Form2 frm2; public Form5() { InitializeComponent(); } string bagStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Veri_Tabani.accdb"; public void AlanTemizle() { textBox1.Clear(); textBox2.Clear(); textBox3.Clear(); textBox4.Clear(); } private void button1_Click(object sender, EventArgs e) { int aracSayisi = 0; int.TryParse(this.textBox4.Text, out aracSayisi); using (var bag = new OleDbConnection(bagStr)) { OleDbCommand kmt = new OleDbCommand(@"insert into Olaylar (isim,soy_isim,adres,arac_sayisi) values (@isim,@soy_isim,@adres,@arac_sayisi)", bag); kmt.Parameters.AddWithValue("@isim", string.IsNullOrEmpty(this.textBox1.Text) ? "" : this.textBox1.Text); kmt.Parameters.AddWithValue("@soy_isim", string.IsNullOrEmpty(this.textBox2.Text) ? "" : this.textBox2.Text); kmt.Parameters.AddWithValue("@adres", string.IsNullOrEmpty(this.textBox3.Text) ? "" : this.textBox3.Text); kmt.Parameters.AddWithValue("@arac_sayisi", aracSayisi); bag.Open(); kmt.ExecuteNonQuery(); bag.Close(); } frm2.tablo_guncelleme(); AlanTemizle(); } }
- Düzenleyen CetinBasozEditor 14 Ekim 2015 Çarşamba 11:13
- Yanıt Olarak İşaretleyen CetinBasozEditor 14 Ekim 2015 Çarşamba 14:05
Tüm Yanıtlar
-
"Boş" bir string ve her seye uymaz. Ornegin "Boş" lafindan bir int ya da DateTime uretemezsin. Zaten "Boş" yazdirmak bir yaraya bandaj gibi bir sey. Ya deger yazdir, ya da tablonda NULL kabul etsin, NULL yazilsin.
Kodunu ve tablonun yapisini paylasmadigindan daha fazla yardim imkansiz hale geliyor.
Ek olarak kucuk ama cok buyuk bir nasihat, access'i database diye kullanma. Tabii bunu dinleyen nadir cikiyor, dinlemek icin genelde basinin agrimasi gerekiyor (er ya da gec garanti).
-
Çetin hocam kodlar aşağıdaki gibi kısaca yazdım. bu şekilde yaptığım zaman program patlıyo hocam. Veri tabanı tavsiyenizide değerlendiricem hocam.
public partial class Form5 : Form { public Form2 frm2; public Form5() { InitializeComponent(); } OleDbConnection bag = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Veri_Tabani.accdb"); public void AlanTemizle() { textBox1.Clear(); textBox2.Clear(); textBox3.Clear(); textBox4.Clear(); } public void BosAlanDoldur() { if (textBox1.Text.Trim()=="" && textBox2.Text.Trim()=="" && textBox3.Text.Trim()=="" && textBox4.Text.Trim()=="") { textBox1.Text = "Boş"; textBox2.Text = "Boş"; textBox3.Text = "Boş"; textBox4.Text = "0"; } } private void button1_Click(object sender, EventArgs e) { BosAlanDoldur(); OleDbCommand kmt = new OleDbCommand("insert into Olaylar (isim,soy_isim,adres,arac_sayisi) values (@isim,@soy_isim,@adres,@arac_syisi)", bag); bag.Open(); kmt.Parameters.AddWithValue("@isim", this.textBox1.Text); kmt.Parameters.AddWithValue("@soy_isim", this.textBox2.Text); kmt.Parameters.AddWithValue("@adres", this.textBox3.Text); kmt.Parameters.AddWithValue("@arac_sayisi", this.textBox4.Text); kmt.ExecuteNonQuery(); bag.Close(); frm2.tablo_guncelleme(); AlanTemizle(); }
- Düzenleyen Ali ihsan suna 14 Ekim 2015 Çarşamba 10:46
-
if (textbox1=="") bu kod hatali { textbox1.Text="Boş"; }
if ( texbox1.Text == "") boyle olucak.
texbox1.Text="Boş";Agha Huseynov
- Yanıt Olarak Öneren MuhammedEmir 29 Ekim 2015 Perşembe 16:21
-
BosAlanDoldur hatali ama zaten gereksiz ("Boş" yazman gerekiyorsa asagida "" yerine yaz):
public partial class Form5 : Form { public Form2 frm2; public Form5() { InitializeComponent(); } string bagStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Veri_Tabani.accdb"; public void AlanTemizle() { textBox1.Clear(); textBox2.Clear(); textBox3.Clear(); textBox4.Clear(); } private void button1_Click(object sender, EventArgs e) { int aracSayisi = 0; int.TryParse(this.textBox4.Text, out aracSayisi); using (var bag = new OleDbConnection(bagStr)) { OleDbCommand kmt = new OleDbCommand(@"insert into Olaylar (isim,soy_isim,adres,arac_sayisi) values (@isim,@soy_isim,@adres,@arac_sayisi)", bag); kmt.Parameters.AddWithValue("@isim", string.IsNullOrEmpty(this.textBox1.Text) ? "" : this.textBox1.Text); kmt.Parameters.AddWithValue("@soy_isim", string.IsNullOrEmpty(this.textBox2.Text) ? "" : this.textBox2.Text); kmt.Parameters.AddWithValue("@adres", string.IsNullOrEmpty(this.textBox3.Text) ? "" : this.textBox3.Text); kmt.Parameters.AddWithValue("@arac_sayisi", aracSayisi); bag.Open(); kmt.ExecuteNonQuery(); bag.Close(); } frm2.tablo_guncelleme(); AlanTemizle(); } }
- Düzenleyen CetinBasozEditor 14 Ekim 2015 Çarşamba 11:13
- Yanıt Olarak İşaretleyen CetinBasozEditor 14 Ekim 2015 Çarşamba 14:05
-
Çetin Hocam siz Daha İyi bilirsiniz
Ben Şu şekilde Yapıyorum hocam acaba Sağlıklımı
örnek:
If sube_kodu = "" Then .Add("@SUBE_KODU", FbDbType.VarChar).Value = DBNull.Value Else .Add("@SUBE_KODU", FbDbType.VarChar).Value = sube_kodu End If
Bilgisayar,Hayallerini, Mantığını Kullanarak Gerçekleştirir...
-
-
-
Gercekten Null gerekmeyen sutunlarinda NOT NULL kullan. NULL gerekliyse ve kullandiysan:
- Insert listende o sutun yer almiyorsa otomatik olarak NULL kullanilir.
- Insert listende yer aliyorsa ve NULL olmasi gerekliyse NULL belirtmen gerekli.
Ornegin TelefonNo alani NULL ya da "" olsa fark ediyor mu? Sonucta ikisinde de belirtilmemis. Fark eden durumlar olabilir, o zaman NULL desteklesin o kolon.
-
-