C# "System.Data.Sqlclient.Sqlexception: 'Incorrect syntax near '@type'.'" hatası

walkerrr

Centipat
Katılım
21 Mayıs 2022
Mesajlar
898
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Yazım yanlışı gibi gözüküyor fakat yazım yanlışı yok.

C#:
private void buttonAdd_Click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection("Data Source=SRM003\\SQLEXPRESS;Initial Catalog=ornVT;User ID=sa;Password=123;Pooling=False");
    con.Open();
    SqlCommand cmd = new SqlCommand("insert into inventory values (@serino,@marka,@model,@type", con);
    cmd.Parameters.AddWithValue("@serino", txSeri.Text);
    cmd.Parameters.AddWithValue("@Marka", txMarka.Text);
    cmd.Parameters.AddWithValue("@model", txModel.Text);
    cmd.Parameters.AddWithValue("@type", int.Parse(txINVTID.Text));

    cmd.ExecuteNonQuery();


    con.Close();
    MessageBox.Show("Ekleme işlemi tamamlandı.");
}
 
Son düzenleyen: Moderatör:
Kodunuzda birkaç potansiyel sorun var. İlk olarak, SQL sorgusu içinde eksik bir kapanış parantezi var. Düzgün bir SQL sorgusu için bu parantezi eklemeniz gerekiyor. İkinci olarak, "Marka" parametresini küçük harflerle belirtmişsiniz, ancak C# case sensitive olduğundan büyük harflerle belirttiğiniz gibi olmalı. İşte düzeltilmiş kod:

C#:
private void buttonAdd_Click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection("Data Source=SRM003\\SQLEXPRESS;Initial Catalog=ornVT;User ID=sa;Password=123;Pooling=False");
    con.Open();
    SqlCommand cmd = new SqlCommand("insert into inventory values (@serino, @Marka, @model, @type)", con);
    cmd.Parameters.AddWithValue("@serino", txSeri.Text);
    cmd.Parameters.AddWithValue("@Marka", txMarka.Text);
    cmd.Parameters.AddWithValue("@model", txModel.Text);
    cmd.Parameters.AddWithValue("@type", int.Parse(txINVTID.Text));

    cmd.ExecuteNonQuery();

    con.Close();
    MessageBox.Show("Ekleme işlemi tamamlandı.");
}

Bu düzeltmelerle, SQL sorgusu doğru şekilde çalışacak ve parametrelerinizi ekleyecektir.
 
Kodunuzda birkaç potansiyel sorun var. İlk olarak, SQL sorgusu içinde eksik bir kapanış parantezi var. Düzgün bir SQL sorgusu için bu parantezi eklemeniz gerekiyor. İkinci olarak, "Marka" parametresini küçük harflerle belirtmişsiniz, ancak C# case sensitive olduğundan büyük harflerle belirttiğiniz gibi olmalı. İşte düzeltilmiş kod:
C#:
private void buttonAdd_Click(object sender, EventArgs e)
{
 SqlConnection con = new SqlConnection("Data Source=SRM003\\SQLEXPRESS;Initial Catalog=ornVT;User ID=sa;Password=123;Pooling=False");
 con.Open();
 SqlCommand cmd = new SqlCommand("insert into inventory values (@serino, @Marka, @model, @type)", con);
 cmd.Parameters.AddWithValue("@serino", txSeri.Text);
 cmd.Parameters.AddWithValue("@Marka", txMarka.Text);
 cmd.Parameters.AddWithValue("@model", txModel.Text);
 cmd.Parameters.AddWithValue("@type", int.Parse(txINVTID.Text));

 cmd.ExecuteNonQuery();

 con.Close();
 MessageBox.Show("Ekleme işlemi tamamlandı.");
}

ChatGPT çok güzel cevaplamış.
 
ChatGPT çok güzel cevaplamış.
Zaten ben yaptım demedim hocam. Arkadaşın sorusuna yanıt verdim ve doğru cevap.

Ayrıca kendimde farkları inceledim ve attım, direkt kopyala yapıştır da değil hani. Front-end adamıyım ama C# cahili değilim.
 
Kodunuzda birkaç potansiyel sorun var. İlk olarak, SQL sorgusu içinde eksik bir kapanış parantezi var. Düzgün bir SQL sorgusu için bu parantezi eklemeniz gerekiyor. İkinci olarak, "marka" parametresini küçük harflerle belirtmişsiniz, ancak C# case sensitive olduğundan büyük harflerle belirttiğiniz gibi olmalı. İşte düzeltilmiş kod:

C#:
private void buttonAdd_Click(object sender, EventArgs e)
{
 SqlConnection con = new SqlConnection("Data Source=SRM003\\SQLEXPRESS;Initial Catalog=ornVT;User ID=sa;Password=123;Pooling=False");
 con.Open();
 SqlCommand cmd = new SqlCommand("insert into inventory values (@serino, @Marka, @model, @type)", con);
 cmd.Parameters.AddWithValue("@serino", txSeri.Text);
 cmd.Parameters.AddWithValue("@Marka", txMarka.Text);
 cmd.Parameters.AddWithValue("@model", txModel.Text);
 cmd.Parameters.AddWithValue("@type", int.Parse(txINVTID.Text));

 cmd.ExecuteNonQuery();

 con.Close();
 MessageBox.Show("Ekleme işlemi tamamlandı.");
}

Bu düzeltmelerle, SQL sorgusu doğru şekilde çalışacak ve parametrelerinizi ekleyecektir.

Sorun düzeldi çok teşekkürler.
 

Geri
Yukarı