Şimdi Ara

Syntax error in INSERT INTO statement. Hatası

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
13
Cevap
0
Favori
4.278
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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?



  • 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ı.";




  • 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ı >
  • 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
     Syntax error in INSERT INTO statement. Hatası Syntax error in INSERT INTO statement. Hatası




  • 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.
  • nefarkeder23 N kullanıcısına yanıt
    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.
  • nefarkeder23 N kullanıcısına yanıt
    no ve yas sayı olduğundan tek tırnak ekleme.

    values(" + no + ",'" + ad + "','" + soyad + "'," + yas + ")", baglanti);
  • 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
     Syntax error in INSERT INTO statement. Hatası




  • 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.
  • Ben hala bu sorunumu çözemedim. Yokmu tavsiyesi olan?
  • textboxlarda tek tırnak varsa onu çift yap veya kodla yaptır syntax error ondan olabilir
  • Nasıl yani anlamadım. Zahmet olmasa biraz detaylı anlatırmısınız.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.