none
Kayıt hatası RRS feed

  • Soru

  • Arkadaşlar Merhaba;

    Access veritabanına aşağıdaki kodlar ile kayıt yapıyorum fakat sorun şu ki eğer kaydı yapılan metnin içerisinde ( ' ) kesme işareti geçiyorsa kayıt yapmıyor sorgu hatası veriyor,sorunu  nasıl çözebilirim ?

    OleDbCommand komu = new OleDbCommand("INSERT INTO tblsohbet(Mesaj,Tarih,ip,nickname,Kategoriler,propic) VALUES('" + TextBox1.Text + "','" + DateTime.Now + "','" + Request.UserHostAddress.ToString() + "','" + "Anonim" + "','" + DropDownList1.SelectedValue + "','" + "~/avatar/bennet.png" + "')", baglan);
                                baglan.Open();
                                komu.ExecuteNonQuery();
                                baglan.Close();
                                DataList1.DataBind();
                                TextBox1.Text = "";
    
                                Response.Redirect(Request.RawUrl);

    Şimdiden teşekkürler

    22 Mayıs 2013 Çarşamba 18:01

Yanıtlar

Tüm Yanıtlar

  • http://social.msdn.microsoft.com/Forums/tr-TR/aspnettr/thread/f7e1278e-8b10-4f85-ada5-6f449c8c8ed0


    Burdaki problem ile aynı. Sql injection güvenlik açığı var kodunuzda. ordaki yanıtı uygularsanız sorununuz giderilecek.


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC

    22 Mayıs 2013 Çarşamba 19:07
    Moderatör
  • @ Paremetreismi

    insert komutunuz içerisine parametre olarak yollarsanız sorun cözülecektir .injection olmayacakdır.

    23 Mayıs 2013 Perşembe 10:20
  • yada böle bir class tanımlayıp asağıdaki sekilde kullanabilirsiniz

    publicclassKontrol { public Kontrol() { //// TODO: Add constructor logic here// }     publicstaticstring Temizle(string Metin)     {         string keyword = Metin;         keyword = keyword.Replace(" """);          keyword = keyword.Replace("'""");          keyword = keyword.Replace("[""");          keyword = keyword.Replace("(""");          keyword = keyword.Replace("?""");         return keyword;     } }

     DataRow drLogin = mt.GetDataRow("Select * from Kullanici where KullaniciAdi='" +Kontrol.Temizle(txtKullaniciAdi.Text) + "' and Sifre ='" +Kontrol.Temizle( txtSifre.Text) + "' and GrupID=1");
            if (drLogin != null)
            {
                Session["KullaniciId"] = drLogin["KullaniciID"].ToString();
                Response.Redirect("Default.aspx");
            }
            else
                lblHata.Text = "Kullanici Adi Yada Sifre Hatalı";
        }

    toolboxdan aldıgınız elemanların önüne kontrol ekleyip

         

    23 Mayıs 2013 Perşembe 10:28
  • @Sinan Arslan: peki topic başlığında tek tırnak göstermek gerekiyorsa ne yapmalıyız? Mesela sizin kodunuz "Türkiye'deki yazılımcıların çoğu yanlış bilgilere sahip." cümlesini "Türkiyedeki ... " olarak değiştirecek?

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC

    23 Mayıs 2013 Perşembe 10:40
    Moderatör