• 20-06-2010, 21:49:06
    #1
    evet arkadaşlar
    şimdi listboxta veritabanından çektiğim linkler var ben bunları güncellemek için

    2 textbox koydum

    biri txtID

    diğeri txtLink

    şimdi listboxta seçtiğim itemi buton vasıtasıyla bu textboxlara alabiliyorum fakat

    txtLink de gelen linki güncellemek istioyrum fakat aldığım hata şu

    '' System.Windows.Forms.TextBox, Text: xxxxx.com' ' sorgu ifadesi içindeki Sözdizimi hatası (eksik işleç)

    update kodlarımda bunlar.

    private void btnGuncelle_Click(object sender, EventArgs e)
            {
                string sorgu = "UPDATE verilerim SET linkurl='"+ txtLink +"' WHERE linkid='"+ txtID +"'";
                OleDbCommand guncelle = new OleDbCommand(sorgu, baglanti);
                if (baglanti.State != ConnectionState.Open)
                    baglanti.Open();
                guncelle.ExecuteNonQuery();
                baglanti.Close();
                da.Update(ds, "verilerim");
    
                da = new OleDbDataAdapter("SELECT * FROM verilerim", baglanti);
                ds = new DataSet();
                da.Fill(ds, "verilerim");
                lnkList.DataSource = ds.Tables["verilerim"];
                lnkList.DisplayMember = "linkurl";
                lnkList.ValueMember = "linkid";
            }
    şu kodlada listboxtakilerini textboxlara çekiyorum

     private void btnIslem_Click(object sender, EventArgs e)
            {
                int ID = Convert.ToInt32(lnkList.SelectedValue);
                txtID.Text = ID.ToString().Trim();
                txtLink.Text = lnkList.Text.ToString().Trim();
            }
  • 20-06-2010, 22:13:06
    #2
    Eposta Aktivasyonu Gerekmekte
    Hatan burada
    string sorgu = "UPDATE verilerim SET linkurl='"+ txtLink +"' WHERE linkid='"+ txtID +"'";
    Şöyle düzelt
    string sorgu = "UPDATE verilerim SET linkurl='"+ txtLink.Text +"' WHERE linkid='"+ txtID.Text +"'";
  • 20-06-2010, 22:20:58
    #3
    string sorgu = "UPDATE verilerim SET linkurl='"+ txtLink +"' WHERE linkid='"+ txtID.Text +"'";
    böyle yapınca aynı hatayı aldım

    string sorgu = "UPDATE verilerim SET linkurl='"+ txtLink.Text +"' WHERE linkid='"+ txtID.Text +"'";
    böyle yapıncada

    '' xxx.com' ' sorgu ifadesi içindeki Sözdizimi hatası (eksik işleç)

    diye bi hata aldım
  • 20-06-2010, 22:26:12
    #4
    Eposta Aktivasyonu Gerekmekte
    Breakpoint koyup hatayı bulmaya çalış.

    Birde da 'lar dikkatimi çekti

    da.Update kullandıktan sonra yine da'yı DataAtapter'dan instance olarak türetmişsin.

    Başka bir hata göremedim ama textboxtan metini benim verdiğim koddaki gibi çekmelisin. textbox1.Text gibi.

    Birde "baglanti" nerden geliyor
    sorgu üstünde

    baglanti = new OleDbConnection(Conection String);

    tanımladınmı ? Yada method dışındamı oluşturdun bağlantıyı ?
  • 20-06-2010, 22:29:29
    #5
    NiZZo_ adlı üyeden alıntı: mesajı görüntüle
    Breakpoint koyup hatayı bulmaya çalış.

    Birde da 'lar dikkatimi çekti

    da.Update kullandıktan sonra yine da'yı DataAtapter'dan instance olarak türetmişsin.

    Başka bir hata göremedim ama textboxtan metini benim verdiğim koddaki gibi çekmelisin. textbox1.Text gibi.
    heh buldum olay şu imiş txtID int türünde olduğu için tek tırnak kullanılmıyomuş

    WHERE linkid=" + txtID.Text + "";
    böyle yapınca sorun çözüldü

    tekrar teşekkür ederim .Text leri hatırlattığın için
  • 20-06-2010, 22:32:54
    #6
    Eposta Aktivasyonu Gerekmekte
    Çözdüğüne sevindim, ancak direk bu şekilde sorgulama yapman açığa yol açar.

    Textboxları Parametre olarak göndermeni öneririm
  • 20-06-2010, 22:56:06
    #7
    NiZZo_ adlı üyeden alıntı: mesajı görüntüle
    Çözdüğüne sevindim, ancak direk bu şekilde sorgulama yapman açığa yol açar.

    Textboxları Parametre olarak göndermeni öneririm
    daha yeni başladığım için tam bilmiyorum bana yardımcı olması açısından yaptığım bir program zaten

    bunu daha yeni kavrayabildim tam istediğim örnekleri bulamıyorum internette veya nasıl bulabileceğimi bilmiyorum

    parametre nasıl olur onuda gördüm sanki sağda solda ama tam nasıl bilemicem seninde yardımın için sağol tekrardan
  • 20-06-2010, 23:08:51
    #8
    Eposta Aktivasyonu Gerekmekte
    Ben senin kodların ile gösteriyim baktığında anlarsın mantığını

    string sorgu = "UPDATE verilerim SET linkurl=@LinkUrl WHERE linkid=@LinkID";
    Burada linkurl ve linkid alanlarına göndereceğimiz parametreleri belirttik. Parametre belirtirken @ işareti ve bizim belirleyeceğimiz paratmere ismini yazıyoruz.


    OleDbCommand guncelle = new OleDbCommand(sorgu, baglanti);
    guncelle.Parameters.AddWithValue("@LinkUrl", txtLink.Text);
    guncelle.Parameters.AddWithValue("@LinkID", txtID.Text);
    Sorguyu yazdıktan sonra parametrelerine değerleri atıyoruz

    Geri kalan şeyler aynı
    Bu kadar
  • 20-06-2010, 23:15:41
    #9
    NiZZo_ adlı üyeden alıntı: mesajı görüntüle
    Ben senin kodların ile gösteriyim baktığında anlarsın mantığını

    string sorgu = "UPDATE verilerim SET linkurl=@LinkUrl WHERE linkid=@LinkID";
    Burada linkurl ve linkid alanlarına göndereceğimiz parametreleri belirttik. Parametre belirtirken @ işareti ve bizim belirleyeceğimiz paratmere ismini yazıyoruz.


    OleDbCommand guncelle = new OleDbCommand(sorgu, baglanti);
    guncelle.Parameters.AddWithValue("@LinkUrl", txtLink.Text);
    guncelle.Parameters.AddWithValue("@LinkID", txtID.Text);
    Sorguyu yazdıktan sonra parametrelerine değerleri atıyoruz

    Geri kalan şeyler aynı
    Bu kadar
    çok teşekkürler peki INSERT ve DELETE Sorgularını nasıl yapacağız değişen birşey olacakmı ??