System.Data.OleDb.OleDbException: 'INSERT INTO deyiminde sözdizimi hatası.'

PGWasp

Hectopat
Katılım
10 Nisan 2020
Mesajlar
347
Çözümler
3
Daha fazla  
Sistem Özellikleri
Lenovo Ideapad Gaming 3 15ARH05 - AMD Ryzen 4800H - 16GB RAM - 512 SSD + 3 TB HDD + GTX1650Ti

İşletim Sistemi : Windows 11 Home x64
Cinsiyet
Erkek
Merhaba sevgili forum sakinleri. 2 gündür C# üzerinde girilen verileri veri tabanına aktaracak bir program üzerine çalışıyorum. Her şey gayet güzel fakat ekle butonuna bastığım zaman program çöküyor ve Visual Studio başlıkta gördüğünüz hatayı veriyor.
1662992340783.png
İnternette okuduğum kadarıyla bu hata sütün isimlerinden kaynaklanabiliyormuş. Bu yüzden sütün isimlerini değiştirdim fakat hala aynı hatayı alıyorum.
Sizden ricam bu konuyla ilgili bana yardım etmeniz.
Teşekkürler.
C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Database3.mdb");
        private void Form1_Load(object sender, EventArgs e)
        {
            listele();
        }
        DataTable tablo = new DataTable();
        private void listele()
        {
            baglanti.Open();
            OleDbDataAdapter adtr=new OleDbDataAdapter("select *from kayitbilgileri",baglanti);
            adtr.Fill(tablo);
            dataGridView1.DataSource = tablo;
            baglanti.Close();
        }
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            
        }       
        private void button1_Click(object sender, EventArgs e)
        {
            baglanti.Open();
            OleDbCommand komut = new OleDbCommand("insert into kayitbilgileri(@Kullanıcı,@Şifre) values('"+ textBox1.Text +"','"+ textBox2.Text +"'", baglanti);
            komut.ExecuteNonQuery();
            baglanti.Close();
            MessageBox.Show("Kayıt başarıyla oluşturuldu.", "Kayıt");
            for (int i = 0; i < Controls.Count; i++)
            {
                if (Controls[i] is TextBox)
                {
                    Controls[i].Text = "";
                }
            }
        }
    }
}
 
C#:
 OleDbCommand komut = new OleDbCommand("insert into kayitbilgileri(@Kullanıcı,@Şifre) values('"+ textBox1.Text +"','"+ textBox2.Text +"'", baglanti);

Bu kısımda values("'"...) yazmalısınız, çift tırnak eksik.
 
C#:
 OleDbCommand komut = new OleDbCommand("insert into kayitbilgileri(@Kullanıcı,@Şifre) values('"+ textBox1.Text +"','"+ textBox2.Text +"'", baglanti);

Bu kısımda values("'"...) yazmalısınız, çift tırnak eksik.
Nasıl yani hocam, tam anlayamadım. Size zahmet kod ile oynayıp siz yazabilir misiniz ?
Söylediğiniz şekilde yapmaya çalıştığımda hata verdi.
 
Nasıl yani hocam, tam anlayamadım. Size zahmet kod ile oynayıp siz yazabilir misiniz ?
Söylediğiniz şekilde yapmaya çalıştığımda hata verdi.
C#:
OleDbCommand komut = new OleDbCommand("insert into kayitbilgileri(@Kullanıcı,@Şifre) values("'"+ textBox1.Text +"''"+ textBox2.Text +"'"", baglanti);

Bu şekilde yazdığımı deneyin.
 

Geri
Yukarı