Asp.Net The Parameterized Query Hatası Nasıl Çözülür?

0

Asp.Net ile güncelleme işlemi yapmak istediğimde şöyle bir hata alıyorum;

"The parameterized query '(@title varchar(5),@aciklama varchar(9),@adsoyad varchar(8000),@' expects the parameter '@adsoyad', which was not supplied."

  • Neden böyle bir hata veriyor?
  • Böyle bir hata nasıl çözülür?

@alattin

Hata verilen alan şu kısım;

SqlDbType.Varchar alanını db de nvarchar olduğu için  SqlDbType.Nvarchar olarak değiştirdim ancak hata giderilemedi. -ki zaten aciklama bölümü de nvarchar olmasına rağmen varchar sorgusunda herhangi bir sıkıntı yaşamıyorum.

  public static void updateEvent(int id, String title, String aciklama,  String adsoyad, string etkinlikturu)
    {
        SqlConnection con = new SqlConnection(connectionString);
        SqlCommand cmd = new SqlCommand("UPDATE Kayitlar SET title=@title, Aciklama=@aciklama, AdSoyad=@adsoyad, EtkinlikTuru=@etkinlikturu WHERE event_id=@event_id", con);
        cmd.Parameters.Add("@title", SqlDbType.VarChar).Value = title;
        cmd.Parameters.Add("@aciklama", SqlDbType.VarChar).Value= aciklama;
        cmd.Parameters.Add("@adsoyad", SqlDbType.NVarChar).Value = adsoyad;
        cmd.Parameters.Add("@etkinlikturu", SqlDbType.VarChar).Value = etkinlikturu;
        cmd.Parameters.Add("@event_id", SqlDbType.Int).Value = id;

        using (con)
        {
            con.Open();
            cmd.ExecuteNonQuery();
        }
    }

 

notify notify (538)
7 yıl önce sordu

    Toplam 1 Cevap


    0

    The parameterized query.... which was not supplied hatası, SQL sorgusu içinde parametre tanımladığında fakat bu parametreye değer atamadığında ortaya çıkar

    Örneğin 

    select * from kullanicilar where ad=@adsoyad

    şekline bir sorgun varsa sen bu sorguda @adsoyad bölümüne,@adsoyad  ifadesine parametre denir, değeri sonradan yollacağım diye söz veriyorsun. Buraya değeri şu şekilde yollaman gerekiyor

    cmd.Parameters.AddWithValue("@adsoyad","uzmanim net");

    veya şu şekilde

    cmd.Parameters.Add("@adsoyad", SqlDbType.NVarChar).Value = "uzmanim net";

    burada cmd nesnesi sqlcommand nesnesi.

    Sonuç olarak tanımladığın parametreye değer yollamazsan The parameterized query.... which was not supplied hatası alırsın.

    Düzenleme:

    @notify updateEvent metodunun parametrelerinden adsoyad'a değer gelmiyor. Bu metodu kullanan kodlarını gözden geçir. 

    alattin alattin (16999)
    7 yıl önce cevaplandı

    • abi updateevent metodunu kullandığımız yer sadece EvenDAO.cs'de ve bunun içerisindeki 2 kısımda updatevent metodu var. Oların ikiside public static viodlerde biri updateEvent komutu diğeri de updateEventTime -ki updateEventTime ile hiçbir alakası yok. Yani tüm projede sadece bu iki kısım updateeventmetodu kullanıyorç notify 7 yıl önce
    • Yine biyerde yanlış yapıyorum ama nerede?? :) gözlerim kapanıyo artık hatayı aramaktan abi :) notify 7 yıl önce
    • @notify bugün bakayım kodlarına alattin 7 yıl önce
    • @alattin abi valla süper olur notify 7 yıl önce
    üyelik gerektirir

    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