• 25-03-2013, 18:51:38
    #1
    Arkadaşlar

    Veri tabanındaki No su textboxNo ya eşit olan kişinin adsoyad,urun,bolge,aciklama ve tutar bilgilerini değiştirmek istiyorum ancak yapamadım.

    Bu sekilde yapinca diğer bilgiler değişiyor ancak ismi değiştiremiyorum.
    Alıntı
    OleDbDataAdapter ad = new OleDbDataAdapter("UPDATE ListeTBL set Bolge='" + comboBoxBolge.Text + "',Aciklama='" + textBoxAciklama.Text + "',Urun='" + comboBoxUrun.Text + "',Tutar='" + textBoxTutar.Text + "' where AdSoyad='" + textBoxAdSoyad.Text + "'", bag);
    Not: Datagirddeki tıkladıgım satırdan verileri textboxlara aşagıdaki kodla cekiyorum.No adlı sutun Otomatik sayı seklinde tanımlı access de,

    Alıntı
    private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
    {


    textBoxNo.Text = dataGridView1.SelectedRows[0].Cells[0].Value.ToString(); }
    TextboxNo su veritatabnındaki no ile aynı olan satırın bilgilerini değiştirmek için nasıl bir sorgu yapabilirim?
  • 25-03-2013, 20:36:34
    #2
    selam,

    tam anlamadım ama no dan kastın id ise neden değiştiriyorsun ki ne gereği var ? bunun yerine başka şeyler yapılabilir. id değiştirmek mantıklı değil
  • 25-03-2013, 20:47:02
    #3
    update işlemını DataAdapter ile yaptıramazsın diye hatırlıyom update insert delete gibi geriye deger döndurmeyen işlemlerde Command kullanıyorsun OleDbCommand ı access için

    eger sorgunun dogru olduguna emınsen bunu denermısın

    OleDbCommand com = new OleDbCommand("UPDATE ListeTBL set Bolge='" + comboBoxBolge.Text + "',Aciklama='" + textBoxAciklama.Text + "',Urun='" + comboBoxUrun.Text + "',Tutar='" + textBoxTutar.Text + "' where AdSoyad='" + textBoxAdSoyad.Text + "'", bag);
                com.ExecuteNonQuery();
  • 25-03-2013, 20:57:08
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Update işlemleri her zaman id ile yapılır. Yani sorgunda where kısmında adsoyad eşit olanı değil id'si eşit olanı değiştirmen gerek. Eğer yukarıda yazdığın şekilde kullanırsan adısoyadı aynı olan ne kadar kayıt varsa hepsi güncellenir.

    OleDbConnection conn = new OleDbConnection(conString);
    OleDbCommand command_update = new OleDbCommand("UPDATE ListeTBL set Bolge='" + comboBoxBolge.Text + "',Aciklama='" + textBoxAciklama.Text + "',Urun='" + 
    	comboBoxUrun.Text + "',Tutar='" + textBoxTutar.Text + "' where ID='" + Convert.ToInt32(textBoxNo.Text) + "'", conn);
    try
    {
    		conn.Open();
    		command_update.ExecuteNonQuery();
    }
    catch (OleDbException e)
    {
    	return;
    }
    
    finally
    {
    	if (conn != null)
    	{
    		conn.Close();
    	}
    }
  • 26-03-2013, 00:09:04
    #5
    Arkadaşlar ertan2002 hocamız konu ile ilgili çok yardımcı olmuştur.Kendisine tekrar çok teşekkür ediyorum.

    Bahsedilen sorun veritabanımdaki sutunu adını No verdiğimden dolayı kaynaklanıyormuş.No sutunun adını ID yaptık ve Duzenle butonumuzu aynen aşağıdaki şekilde yaptık
    Alıntı
    baglanmetod();
    string cmdstr = "UPDATE ListeTBL set AdSoyad='" + textBoxAdSoyad.Text + "', Bolge='" + comboBoxBolge.Text + "',Aciklama='" + textBoxAciklama.Text + "',Urun='" + comboBoxUrun.Text + "',Tutar=" + textBoxTutar.Text + " where ID=" + seciliID;
    DataTable dt = new DataTable();
    using (OleDbCommand cmd = new OleDbCommand(cmdstr,bag))
    {
    cmd.ExecuteNonQuery();
    }


    bag.Close();
    listele();
    MessageBox.Show("" + textBoxAdSoyad.Text + " Adlı müşterinin bilgileri değiştirildi.");