C# hastane programım insert'de hata veriyor

Bu konuyu okuyanlar

İTÜsteyenYTÜlü

Öğrenci
Katılım
9 Kasım 2013
Mesajlar
2
Reaksiyon puanı
0
Puanları
0
Arkadaşlar bir hastane randevu sistemi için C# masaüstü programı yazıyorum. Randevu ekleme sırasında "insert into deyiminde söz dizimi hatası" diyor ama ben bir hata bulamıyorum bu deyimde. Yardım ederseniz sevinirim.

foreach (Control item in panel1.Controls)
{
RadioButton rb = (RadioButton)(item);
if (rb.Checked == true)
{


con.Open();
OleDbCommand cmd3 = new OleDbCommand("INSERT INTO Randevular (DoktorID, HastaTCNo,RandevuGunu,RandevuSaati,BransID) values (" + cmbDoktorEkle.SelectedValue + ",'" + txtTCNoEkle.Text + "','" + dtpRandevuGunuEkle.Value + "','" + rb.Text + "'," + cmbBransEkle.SelectedValue + "", con);
cmd3.ExecuteNonQuery();
con.Close();
OleDbCommand cmd4 = new OleDbCommand("SELECT Randevular.RandevuID, HastaGenelBilgileri.TCNo, HastaGenelBilgileri.Adi+' '+ HastaGenelBilgileri.Soyadi as HastaAdiSoyadi, HastaGenelBilgileri.DogumTarihi, Cinsiyet.Cinsiyet, Doktorlar.DoktorAdi+' '+ Doktorlar.DoktorSoyadi as DoktorAdiSoyadi, Branslar.BransAdi, Randevular.RandevuGunu, Randevular.RandevuSaati, Doktorlar.DoktorID FROM (Cinsiyet INNER JOIN HastaGenelBilgileri ON Cinsiyet.CinsiyetID = HastaGenelBilgileri.Cinsiyet) INNER JOIN ((Branslar INNER JOIN Doktorlar ON Branslar.BransID = Doktorlar.Bransi) INNER JOIN Randevular ON (Doktorlar.DoktorID = Randevular.DoktorID) AND (Branslar.BransID = Randevular.BransID)) ON HastaGenelBilgileri.TCNo = Randevular.HastaTCNo", con);
OleDbDataAdapter da4 = new OleDbDataAdapter(cmd4);
ds.Tables["Randevular"].Clear();
da4.Fill(ds, "Randevular");
}

İnsert kodunda yazdığım cmbBransEkle ya da rb.Text türlerinde bir hata yok. Onları Messagebox shov ile gösterdiğim zaman gayet doğru çalışıyorlar. Söz dizimi hatası neden veriyor?
 

hokumus

Asistan
Katılım
15 Mayıs 2012
Mesajlar
173
Reaksiyon puanı
3
Puanları
18
2 eleştiri yapayım.

1. si, control radiobutton değilse program çatlar tip kontrolü yapmalısın.

2. si, sorgu yazarken bu şekilde kullanman yönetim açısından çok problemli olur ve çok amatörce. Aldığın hatayıda gidermek için Command' ın parameters özelliğini kullan. AddWithValue metodunu incele.
 

İTÜsteyenYTÜlü

Öğrenci
Katılım
9 Kasım 2013
Mesajlar
2
Reaksiyon puanı
0
Puanları
0
Çok teşekkür ederim Controllerimi düzeltince oldu, bir de parantez eksikmiş.
Dediğiniz gibi acemi olduğum için hangisi en verimli yöntem diye düşünemiyorum, bi kere hata vermeden çalışsa :)
 

hokumus

Asistan
Katılım
15 Mayıs 2012
Mesajlar
173
Reaksiyon puanı
3
Puanları
18
Zamanla daha iyi olacaktır.

Başarılar dilerim.
 
Üst