0
OleDbCommand komut = new OleDbCommand(); baglanti.Open(); komut.Connection = baglanti; komut.CommandText = "update Profil set İsim='"+txtisim.Text+"',Sınıf='"+txtsinif.Text+"',Numara='"+txtnumara.Text+"',9 sınıf='"+txt9sinif.Text+"',10 sınıf='"+txt10sinif.Text+"',11 sınıf='"+txt11sinif.Text+"',12 sınıf='"+txt12sinif.Text+"',Hakkında='"+txtnot.Text+"' where id="+txtid.Text+""; komut.ExecuteNonQuery(); baglanti.Close(); tablo.Tables["verilerigöster"].Clear(); verilerigöster();
Kodlarını güncelleme buttonuna ekledim fakat aşağıdaki kod hata vermekte.
komut.ExecuteNonQuery();
hata vermesini önlemek için try catch komutlarını kullandım fakat bu sorunu hayla çözemedim.
kodlarda benim görmedim hata mı var acaba ?
0
Kodunuz ile ilgili bir kaç önerim var.
Öncelikle kodunuzda string birleştirme kullanmayın. Yani Sql sorgularını birleştirerek oluşturmayın.
Bunun yerine parametre kullanin. Aşağıdaki örnekte olduğu gibi.
OleDbCommand komut = new OleDbCommand(); komut.Connection = baglanti; komut.CommandText = "update Profil set Isim=@pIsim, Not=@pNot"; komut.Parameters.AddWithValue("@pIsim", txtisim.Text); komut.Parameters.AddWithValue("@pNot", txtnot.Text); baglanti.Open(); komut.ExecuteNonQuery(); baglanti.Close();
Parametre kullanırsanız kodunuz daha güvenli olur. Aynı zamanda tırnak işaretlerinden kaynaklanan hatalardan da kurtulursunuz.
Önce @ işareti ile sorgunun içinde paremetre alanları tanimliyorsunuz.
Daha sonra aşağıdaki gibi bu paremetreye değer gönderiyorsunuz.
komut.Parameters.AddWithValue("@pIsim", txtisim.Text);
Diğer bir öneri tablodaki Kolon adlarında türkçe karakter kullanmayın. İsim yerine Isim, Sınıf yerine Sinif gibi Türkçe karakter olmayan isimler verin.
0
Teşekkür Ederim fakat hayla sorun yaşıyorum cok fazla kod ekleyip cıkardığımdan karıştırdım. Dediğiniz gibide yaptım ama
komut.ExecuteNonQuery();
bu komut hata veriyor veritabanında düzenleme yapıp ekledim tekrar ve yeni ayar yaptım fakat sorun hayla nerede kaynaklanıyor çözemedim.
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 Microsoft.Win32; using System.Data.OleDb; namespace Den1 { public partial class profil : Form { public girispaneli frmgiris; OleDbCommand cmd; public profil() { InitializeComponent(); } public OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=sql.mdb"); public OleDbCommand komut = new OleDbCommand(); DataSet tablo = new DataSet(); public object Listview1 { get; private set; } private void verilerigöster() { baglanti.Open(); OleDbDataAdapter yenial = new OleDbDataAdapter("Select * from Profil", baglanti); yenial.Fill(tablo, "Profil"); dataGridView1.DataSource = tablo.Tables["Profil"]; baglanti.Close(); { } } private void button2_Click(object sender, EventArgs e) { buttonguncelle.Enabled = true; txtisim.Enabled = true; txtsinif.Enabled = true; txtnumara.Enabled = true; txt9sinif.Enabled = true; txt10sinif.Enabled = true; txt11sinif.Enabled = true; txt12sinif.Enabled = true; txt12sinif.Enabled = true; txtnot. Enabled = true; } private void profil_Load(object sender, EventArgs e) { // TODO: This line of code loads data into the 'sqlDataSet2.Profil' table. You can move, or remove it, as needed. this.profilTableAdapter1.Fill(this.sqlDataSet2.Profil); verilerigöster(); // TODO: This line of code loads data into the 'sqlDataSet.Profil' table. You can move, or remove it, as needed. } private void buttonkaydet_Click(object sender, EventArgs e) { } private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e) { } private void buttonguncelle_Click(object sender, EventArgs e) { OleDbCommand komut = new OleDbCommand(); baglanti.Open(); komut.Connection = baglanti; komut.CommandText = "update Profil set Isim=@pIsim, sinif=@psinif, Numara=@Numara, 9sinif=@9sinif, 10sinif=@10sinif, 11sinif=@11sinif, 12sinif=@12sinif, not=@not"; komut.Parameters.AddWithValue("@pIsim", txtisim.Text); komut.Parameters.AddWithValue("@psinif", txtsinif.Text); komut.Parameters.AddWithValue("@pNumara", txtnumara.Text); komut.Parameters.AddWithValue("@p9sinif", txt9sinif.Text); komut.Parameters.AddWithValue("@p10sinif", txt10sinif.Text); komut.Parameters.AddWithValue("@p11sinif", txt11sinif.Text); komut.Parameters.AddWithValue("@p12sinif", txt12sinif.Text); komut.Parameters.AddWithValue("@pnot", txtnot.Text); komut.ExecuteNonQuery(); baglanti.Close(); } private void buttonyenikayit_Click(object sender, EventArgs e) { verilerigöster(); } private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { txtid.Text = dataGridView1.SelectedRows[0].Cells[0].Value.ToString(); } } }
Cevap yazabilmek için üye girişi yapmalısınız.
Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol