Vb.net + Access ve ir soru

Kodla Büyü

aresbel3

Seçkin Üye
Seçkin Üye
Mesajlar
364
Öğrencilerimle bir örnek yaparken takıldık. Yardımcı olmanızı istiyeceğim. Formdaki listboxlara verileri ekleyince aynı anda veri tabanına da bilgiler kaydedilsin istiyorum. INSERT INTO deyiminde sözdizimi hatası. diye bir hata mesajı alıyorum.

Dim sql As New String("INSERT INTO Tablo1 (Ad,Soyad,No,Sirano) VALUES ('ad','soyad','no','sirano'")
Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='sınıf1.mdb'")
Dim komutnesnesi As New OleDbCommand(sql, baglanti)
baglanti.Open()
sonuc = komutnesnesi.ExecuteNonQuery
If sonuc = 1 Then
MsgBox("Bilgiler veri tabanına kaydedilmiştir!")
End If
Listele("Select * from Tablo1'")
baglanti.Close()



sonuc = komutnesnesi.ExecuteNonQuery satırında hata görünüyor.
 

Ekli dosyalar

  • hata.jpg
    hata.jpg
    85.1 KB · Görüntüleme: 1,273
  • sinifoturmaplani.rar
    sinifoturmaplani.rar
    122.8 KB · Görüntüleme: 52
Dim sql As New String("INSERT INTO Tablo1 (Ad,Soyad,No,Sirano) VALUES ('ad','soyad','no','sirano')") şeklinde olursa sanırım düzelir hocam.
 
Evet bi parantez unutmuşum. Ve cevabınızı görünce ümitlendim, ama aynı hatayı vermeye devam ediyor.
 
halilturkoglu' Alıntı:
Dim sql As New String("INSERT INTO Tablo1 (Ad,Soyad,No,Sirano) VALUES ('ad','soyad','no','sirano')") şeklinde olursa sanırım düzelir hocam.
Values içindeki ad,soyad,no,sirano nedir? Yani birer değişken midir, parametre midir?
 
Kod:
Dim sql As New String("INSERT INTO Tablo1 (Ad,Soyad,No,Sirano) VALUES (" & ad & "," & soyad &  "," & no &  "," & sirano & ")")
şeklinde denediniz mi hocam? Bir de bunlardan string olanlar için;
Kod:
Dim sql As New String("INSERT INTO Tablo1 (Ad,Soyad,No,Sirano) VALUES ('" & ad & "','" & soyad &  "'," & no &  "," & sirano & ")")
şeklinde denerseniz belki olabilir. Bendeki sürüm 2008 olduğu için çalıştırıp deneyemedim.
 
denedim hocam olmadı.
ad soyad no sirano birer değişken
sirano ingeger. ad, soyad ve no string değişkenler..
 
Kod:
Dim sql As New String("INSERT INTO Tablo1 (Ad,Soyad,No,Sirano) VALUES ('" & ad & "','" & soyad &  "','" & no &  "'," & sirano & ")")
o zaman bir de bu şekilde deneyin hocam. veya hepsini tek tırnak arasına alın.
 
Kodlardaki
1.Sorun: veritabanı adında türkçe karakter kullanılması olabilir.
2.sorun: tablodaki alanların türleri eğer metin olarak tanımlanmışsa yukarıdaki sql kodu doğru. aksi halde sql kodlarına bakılmalı.
 
Dim sql As New String("INSERT INTO Tablo1 (Ad,Soyad,[No],Sirano) VALUES ('" & ad & "','" & soyad & "','" & no & "'," & sirano & ")")

hocam veri tabanında alan adı olarak "No" kullanmasanız daha iyi olurmuş. Ama bu tip bir isim verirseniz yada alan adı boşluk gibi karakterler içeriyorsa köşeli paranteze almalısınız. Yinede kesin çözüm alan adını dikkatli vermek. values kısmında değerleri değişkenlerden göndereceğimiz için çift tırnakları kapatıp değişkeni stringe ekleyip tekrar stringe devam etmek için çift tırnakları açıyoruz. ad,soyad,no alanları string olduğu için tek tırnak içinde , sirano sayı tipinde olduğu için tek tırnaklar olmadan yolluyoruz. Bence sirano'yu hiç yollamayıp otomatik sayı olarak kullanmak daha mantıklı.

İNŞALLAH probleminiz çözülmüştür.
İyi çalışmalar.
 

Ekli dosyalar

Tablodaki bütün alanları metin yaptım. ona rağmen aynı hatayı vermeye devam ediyor program.
Dim sql As New String("INSERT INTO Tablo1 (Ad,Soyad,No,Sirano) VALUES (" & ad & "," & soyad & "," & no & "," & sirano & ")")
kodu da çalışmadı. Ekte VS 2010 da hazırlanmış halini verdim. ilgili arkadaşlar kodları çalıştırıp yükleyebilirlerse çok iyi olur.
Teşekkürler
 
çok teşekkür ederim hocam. Sorun no değişkeni ve alanındaymış. dediğiniz gibi de oldu. Ancak ben adlarını değiştirmeyi tercih ettim :))
 
BBNET
Geri
Üst