Arama butonu
Bu konudaki kullanıcılar: 1 misafir
11
Cevap
4435
Tıklama
0
Öne Çıkarma
Syntax error in INSERT INTO statement. Hatası
N
12 yıl
Teğmen
Konu Sahibi

OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=ogrenciler.accdb");
baglanti.Open();
int no = Convert.ToInt32(notext.Text);
int yas = Convert.ToInt32(yastext.Text);
string ad = adtext.Text;
string soyad = soyadtext.Text;
OleDbCommand komut = new OleDbCommand("insert into ogrenci(no, ad, soyad, yas) values('" + no + "','" + ad + "','" + soyad + "','" + yas + "')", baglanti);


komut.ExecuteNonQuery();
baglanti.Close();
sonuc.Text = "Kayıt Tamamlandı.";


Bu sorgumda nasıl bir hata var çözemedim. Bir de siz bakar mısınız?

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



P
12 yıl
Teğmen

no , ad , soyad , yas alanlarının database tablondaki alanlar ve tipleri ile yanı olduğunu düşünerek . aşağıdaki kod dener misin. olmaz ise table design resmini ekle buraya bakalım.

OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=ogrenciler.accdb");

if (baglanti.State==ConnectionState.Closed)
{
baglanti.Open();
}
OleDbCommand komut = new OleDbCommand("insert into ogrenci(no, ad, soyad, yas) values(@no,@ad,@soyad,@yas)", baglanti);
komut.Parameters.Add("@no", OleDbType.Integer).Value = Convert.ToInt32(notext.Text);
komut.Parameters.Add("@ad", OleDbType.VarChar,50).Value = Convert.ToInt32(adtext.Text);
komut.Parameters.Add("@soyad", OleDbType.VarChar, 50).Value = Convert.ToInt32(soyadtext.Text);

komut.Parameters.Add("@yas", OleDbType.Integer).Value = Convert.ToInt32(yastext.Text);


komut.ExecuteNonQuery();
baglanti.Close();
sonuc.Text = "Kayıt Tamamlandı.";


Bu mesaja 1 cevap geldi.
K
12 yıl
Yarbay

Normal yazilim mantiginda hata tutmak cok onemlidir. Bu islemde ne yaparsaniz yapin sonuc islem basarili donecektir.
Try blogu icine kodlarinizi yazip basarili mesaji verin catch durumunda gelen parametreleri loglayin ve islemin basarili olmadigi mesajini verin ve finally blogunda da baglantinizi kapatip isi bitirin.



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
N
12 yıl
Teğmen
Konu Sahibi

quote:

Orijinalden alıntı: projeyazilim

no , ad , soyad , yas alanlarının database tablondaki alanlar ve tipleri ile yanı olduğunu düşünerek . aşağıdaki kod dener misin. olmaz ise table design resmini ekle buraya bakalım.

OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=ogrenciler.accdb");

if (baglanti.State==ConnectionState.Closed)
{
baglanti.Open();
}
OleDbCommand komut = new OleDbCommand("insert into ogrenci(no, ad, soyad, yas) values(@no,@ad,@soyad,@yas)", baglanti);
komut.Parameters.Add("@no", OleDbType.Integer).Value = Convert.ToInt32(notext.Text);
komut.Parameters.Add("@ad", OleDbType.VarChar,50).Value = Convert.ToInt32(adtext.Text);
komut.Parameters.Add("@soyad", OleDbType.VarChar, 50).Value = Convert.ToInt32(soyadtext.Text);

komut.Parameters.Add("@yas", OleDbType.Integer).Value = Convert.ToInt32(yastext.Text);


komut.ExecuteNonQuery();
baglanti.Close();
sonuc.Text = "Kayıt Tamamlandı.";

Çok teşekkür ederim ama ben kodu anlamadım. Anlamam önemli yaptığımı anlatacam çünkü veritabanım ve design kısmım aşağıdaki gibi.

https://store.donanimhaber.com/9e/ec/00/9eec00ca31d69f06df182878151e5e51.jpg
https://store.donanimhaber.com/3e/d7/e4/3ed7e4ee3909b0935235d3b6e0ea1339.jpg
< Resime gitmek için tıklayın >< Resime gitmek için tıklayın >



N
12 yıl
Teğmen
Konu Sahibi

quote:

Orijinalden alıntı: Kaygerya

Normal yazilim mantiginda hata tutmak cok onemlidir. Bu islemde ne yaparsaniz yapin sonuc islem basarili donecektir.
Try blogu icine kodlarinizi yazip basarili mesaji verin catch durumunda gelen parametreleri loglayin ve islemin basarili olmadigi mesajini verin ve finally blogunda da baglantinizi kapatip isi bitirin.

Teşekkür ederim. Ama benim yazdığım kod başarılı dönüt vermiyor ki. Alanlara veri girdiğim zaman başlıktaki hatayı alıyorum. Sürekli alıyorum ayrıca try catch bi işime yaramaz catch deki mesajı alırım sürekli. Ben alanlara girdiğim verilerin veritabanıma kaydolmasını istiyorum.


Bu mesaja 1 cevap geldi.
P
12 yıl
Teğmen

Kaygerya ;
Normalization kurallarına göre ve yazılım standartları na göre haklı aslında daha çok n-tier arc. şeklinde düşünüp validation sınıflarından tutun hata sınıflarıan kadar oluşturulmalı .

nefarkeder23 ;

kodun yaptığı şey sadece ilgili sql satırına parametre eklemek bunu ekler iken database deki tablodaki tipine göre işlem yaparak ekliyor ayrıca bağlanti cümlen if şartı database ile bağantının sağlanması durumunda bağlantının açıkmı kapalımı olduğunu kontrol ediyor.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @nefarkeder23
T
12 yıl
Yüzbaşı

no ve yas sayı olduğundan tek tırnak ekleme.

values(" + no + ",'" + ad + "','" + soyad + "'," + yas + ")", baglanti);


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @nefarkeder23
N
12 yıl
Teğmen
Konu Sahibi

quote:

Orijinalden alıntı: projeyazilim


Kaygerya ;
Normalization kurallarına göre ve yazılım standartları na göre haklı aslında daha çok n-tier arc. şeklinde düşünüp validation sınıflarından tutun hata sınıflarıan kadar oluşturulmalı .

nefarkeder23 ;

kodun yaptığı şey sadece ilgili sql satırına parametre eklemek bunu ekler iken database deki tablodaki tipine göre işlem yaparak ekliyor ayrıca bağlanti cümlen if şartı database ile bağantının sağlanması durumunda bağlantının açıkmı kapalımı olduğunu kontrol ediyor.

Teşekkür ederim. Sizin verdiğiniz kodla yazdım ama sonuç değişmedi
https://store.donanimhaber.com/52/79/04/527904d8e2ffac7fbc93f064d693538c.jpg
< Resime gitmek için tıklayın >



N
12 yıl
Teğmen
Konu Sahibi

quote:

Orijinalden alıntı: Thook

no ve yas sayı olduğundan tek tırnak ekleme.

values(" + no + ",'" + ad + "','" + soyad + "'," + yas + ")", baglanti);

Teşekkürler. Ama sonuç değişmedi.


Bu mesaja 1 cevap geldi.
N
12 yıl
Teğmen
Konu Sahibi

Ben hala bu sorunumu çözemedim. Yokmu tavsiyesi olan?


Bu mesaja 1 cevap geldi.
C
12 yıl
Teğmen

textboxlarda tek tırnak varsa onu çift yap veya kodla yaptır syntax error ondan olabilir



N
12 yıl
Teğmen
Konu Sahibi

Nasıl yani anlamadım. Zahmet olmasa biraz detaylı anlatırmısınız.




Bu mesajda bahsedilenler: @ctn48
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.