C# - OleDB Parametre Problemi

edeger (1) 6 yıl önce sordu

Merhaba arkadaslar uzun bir parametre ile sql komutu yolluyorum ama "no value given for one or more required parameters" hatasi veriyor. Bir kac farkli sekilde yazdigim halde hata devam ediyor yardimlarinizi bekliyorum.

                string sorgu = "UPDATE ogrenciler set alanGirisTarihi=@AGT,okulNo=@okulNo,sinif=@sinif,ad=@ad,soyad=@soyad,yas=@yas,eposta=@eposta,ilkOgretimOkulu=@ioo,memleketi=@memleketi,aileDurumu=@aileD,anneDurumu=@anneD,babaDurumu=@babaD,kardesDurumu=@kardesD,evAdresi=@evAdresi,evTelefonu=@evTel,cepTelefonu=@cepTel,mezunTarihi=@mezunTarihi,ogrResim=@ogrResim Where id=@id";
                cmd = new OleDbCommand(sorgu, baglanti);
                cmd.Parameters.AddWithValue("@AGT", dateTimePicker1.Text);
                cmd.Parameters.AddWithValue("@okulNo", textBox2.Text);
                cmd.Parameters.AddWithValue("@sinif", textBox3.Text);
                cmd.Parameters.AddWithValue("@ad", textBox4.Text);
                cmd.Parameters.AddWithValue("@soyad", textBox5.Text);
                cmd.Parameters.AddWithValue("@yas", dateTimePicker2.Text);
                cmd.Parameters.AddWithValue("@eposta", textBox7.Text);
                cmd.Parameters.AddWithValue("@ioo", textBox8.Text);
                cmd.Parameters.AddWithValue("@memleketi", textBox9.Text);
                cmd.Parameters.AddWithValue("@aileD", comboBox1.Text);
                cmd.Parameters.AddWithValue("@anneD", textBox11.Text);
                cmd.Parameters.AddWithValue("@babaD", textBox12.Text);
                cmd.Parameters.AddWithValue("@kardesD", textBox13.Text);
                cmd.Parameters.AddWithValue("@evAdresi", textBox14.Text);
                cmd.Parameters.AddWithValue("@evTel", maskedTextBox1.Text);
                cmd.Parameters.AddWithValue("@cepTel", maskedTextBox2.Text);
                cmd.Parameters.AddWithValue("@mezunTarihi", dateTimePicker3.Text);
                cmd.Parameters.AddWithValue("@ogrResim", fileName);
                cmd.Parameters.AddWithValue("@id", Convert.ToInt32(textBox17.Text));

 

Toplam 1 cevap


notify (538) 6 yıl önce cevapladı

Merhaba,

"no value given for one or more required parameters" hatası bildiğim kadarı ile veritabanından yapmaya çalıştığın işlem sırasında ki id'ye göre boş değer geliyor olabilir. Verilerin hepsinin dolu olduğuna ve değiştirilebilir izni olduğuna eminmisin? Eğer eminsen aşağıda ki düzenlemiş olduğum kodlar ile tekrar deneyin. Bir de texbox17.text'e gireceğiniz değer veritabanınızda ki id ile eşleşmesine dikkat edin. Yani texbox'a girdiğiniz id veritabanında olmayabilir.

                string sorgu = "UPDATE ogrenciler set alanGirisTarihi=@AGT,okulNo=@okulNo,sinif=@sinif,ad=@ad,soyad=@soyad,yas=@yas,eposta=@eposta,ilkOgretimOkulu=@ilkOgretimOkulu,memleketi=@memleketi,aileDurumu=@aileDurumu,anneDurumu=@anneDurumu,babaDurumu=@babaDurumu,kardesDurumu=@kardesDurumu,evAdresi=@evAdresi,evTelefonu=@evTelefonu,cepTelefonu=@cepTelefonu,mezunTarihi=@mezunTarihi,ogrResim=@ogrResim Where id=@ID";
                cmd = new OleDbCommand(sorgu, baglanti);
                cmd.Parameters.AddWithValue("@AGT", dateTimePicker1.Text);
                cmd.Parameters.AddWithValue("@okulNo", textBox2.Text);
                cmd.Parameters.AddWithValue("@sinif", textBox3.Text);
                cmd.Parameters.AddWithValue("@ad", textBox4.Text);
                cmd.Parameters.AddWithValue("@soyad", textBox5.Text);
                cmd.Parameters.AddWithValue("@yas", dateTimePicker2.Text);
                cmd.Parameters.AddWithValue("@eposta", textBox7.Text);
                cmd.Parameters.AddWithValue("@ilkOgretimOkulu", textBox8.Text);
                cmd.Parameters.AddWithValue("@memleketi", textBox9.Text);
                cmd.Parameters.AddWithValue("@aileDurumu", comboBox1.Text);
                cmd.Parameters.AddWithValue("@anneDurumu", textBox11.Text);
                cmd.Parameters.AddWithValue("@babaDurumu", textBox12.Text);
                cmd.Parameters.AddWithValue("@kardesDurumu", textBox13.Text);
                cmd.Parameters.AddWithValue("@evAdresi", textBox14.Text);
                cmd.Parameters.AddWithValue("@evTelefonu", maskedTextBox1.Text);
                cmd.Parameters.AddWithValue("@cepTelefonu", maskedTextBox2.Text);
                cmd.Parameters.AddWithValue("@mezunTarihi", dateTimePicker3.Text);
                cmd.Parameters.AddWithValue("@ogrResim", fileName);
                cmd.Parameters.AddWithValue("@ID", Convert.ToInt32(textBox17.Text));