• 20-07-2018, 08:56:20
    #1
    ilk başta

    --------------------------------------------------------------------
    private void btn_deger_olustur_kayit_Click(object sender, EventArgs e)
    {

    try
    {
    if (txt_do_isim.Text.Trim() != "" && txt_do_kurum_adi.Text.Trim() != "" && txt_do_icdonemadi.Text.Trim() != "" && txt_do_isim.Text.Trim() != "" && txt_do_soyisim.Text.Trim() != "" && txt_do_degerlendirmeadi.Text.Trim() != "" && txt_do_email.Text.Trim() != "" && datetimer_giris.Text.Trim() != "" && datetimer_cikis.Text.Trim() != "" && txt_do_telefon.Text.Trim() != "" && txt_do_diger_tel.Text.Trim() != "")
    {
    OleDbCommand caner = new OleDbCommand("update IK_DEGERLENDIRMEOLUSTUR set DONEMADI=’" + txt_do_donem_adi.Text + "’, KURUMADI=’" + txt_do_kurum_adi.Text + "’,ICDEGERADI=’" + txt_do_icdonemadi.Text + "’, ISIM=’" + txt_do_isim.Text + "’, SOYISIM=’" + txt_do_soyisim.Text + "’,DEGERBASLA=’" + this.datetimer_giris.Text + "’,DEGERBITIS=’" + this.datetimer_cikis.Text + "’,TELEFON=’" + txt_do_telefon.Text + "’,DIGERTEL=’" + txt_do_diger_tel.Text + "’", con);
    if (con.State == ConnectionState.Closed)
    {
    con.Open();
    caner.ExecuteNonQuery();
    MessageBox.Show("Kayıt Güncellendi");
    }
    }

    else
    {
    MessageBox.Show("Boş alan bırakmayınız");
    }

    }
    catch (Exception)
    {

    MessageBox.Show("Bu isim kayıtlı.Farklı isim deneyiniz.");
    con.Close();
    }

    ----------------------------------------------------------

    Şeklinde yaptım..

    Selam Reisler Datagreatview bulunan seçili alanı farklı yere aktarıyorum. ve orda güncelleme işlemi yapıyorum. yanlız güncelleme yapıyor ama kayıtlı olan diğer verileri aynı şekilde değiştiriyor. sadece seçili yeri güncelleme yapsa , diğer alanları güncellemese.

    sorun nerede acaba ?








    Daha sonra WHERE koşulu ekledim..

    -----------------------------------------

    OleDbCommand caner = new OleDbCommand("update IK_DEGERLENDIRMEOLUSTUR set DONEMADI=’" + txt_do_donem_adi.Text + "’, KURUMADI=’" + txt_do_kurum_adi.Text + "’,ICDEGERADI=’" + txt_do_icdonemadi.Text + "’, ISIM=’" + txt_do_isim.Text + "’, SOYISIM=’" + txt_do_soyisim.Text + "’,DEGERBASLA=’" + this.datetimer_giris.Text + "’,DEGERBITIS=’" + this.datetimer_cikis.Text + "’,TELEFON=’" + txt_do_telefon.Text + "’,DIGERTEL=’" + txt_do_diger_tel.Text + "’ WHERE ID = ’"++//id alanı"’ ", con);

    ------------------------------------


    Sonra parametre tanımladım

    --------------------------------------------


    private void btn_deger_olustur_kayit_Click(object sender, EventArgs e)
    {
    if (Controls.OfType<TextBox>().ToList().Where(tBox => string.IsNullOrWhiteSpace(tBox.Text)).Count() > 0)
    MessageBox.Show("HATA: Lütfen boş alan bırakmayınız.!.");
    else
    {
    using (OleDbCommand caner = new OleDbCommand("SELECT ISIM FROM IK_DEGERLENDIRMEOLUSTUR WHERE ISIM=@Isim AND SOYISIM=@SoyIsim", con))
    {
    if (con.State == ConnectionState.Closed)
    con.Open();
    caner.Parameters.AddWithValue("@Isim", txt_do_isim.Text);
    caner.Parameters.AddWithValue("@SoyIsim", txt_do_soyisim.Text);
    if (caner.ExecuteScalar() == null)
    {
    caner.CommandText = "UPDATE IK_DEGERLENDIRMEOLUSTUR SET DONEMADI=@Donem, KURUMADI=@Kurum, ICDEGERADI=@IcDeger, ISIM=@Isim, SOYISIM=@SoyIsim, DEGERBASLA=@Basla’" + this. + "’,DEGERBITIS=@Bitis, TELEFON=@Telefon, DIGERTEL=@Diger WHERE ID=@Id";
    caner.Parameters.Clear();
    caner.Parameters.AddWithValue("@Donem", txt_do_donem_adi.Text);
    caner.Parameters.AddWithValue("@Kurum", txt_do_kurum_adi.Text);
    caner.Parameters.AddWithValue("@IcDonem", txt_do_icdonemadi.Text);
    caner.Parameters.AddWithValue("@Isim", txt_do_isim.Text);
    caner.Parameters.AddWithValue("@SoyIsim", txt_do_soyisim.Text);
    caner.Parameters.AddWithValue("@Basla", datetimer_giris.Value.ToString());
    caner.Parameters.AddWithValue("@Bitis", datetimer_cikis.Value.ToString());
    caner.Parameters.AddWithValue("@Telefon", txt_do_telefon.Text);
    caner.Parameters.AddWithValue("@Diger", txt_do_diger_tel.Text);
    caner.Parameters.AddWithValue("@Id", id);
    if (caner.ExecuteNonQuery() > 0)
    MessageBox.Show("Kayıt Güncellendi...");
    else MessageBox.Show("HATA: Kayıt güncelleneMEdi.!.");
    }
    else
    MessageBox.Show("HATA: Bu isim kayıtlı. Farklı bir isim deneyiniz.!.")
    con.Close();
    }
    }
    }
    ----------------------------------------------------

    Yine malesef olmadı, güncelleme işlemi gerçekleşmedi...

    veritabanı şu şekilde


    [IMG][/IMG]





    datagritview üzerinden güncelleme yöntemini denedim,orda veri kayıt ediyor gözüküyor ama işlem yemiyor.

    en son yazdğım parametrede

    [IK_DEGERLENDIRMEOLUSTUR] yerine IK_DEGERLENDIRMEOLUSTUR şeklinde değiştirdim.

    sorunu malesef çözemedim her yolu denedim
    Nasıl bir işlem yapabilirim sizde reisler
  • 20-07-2018, 09:36:48
    #2
    neden önce select yapip sonra update yapıyorsunuz?
  • 20-07-2018, 10:52:38
    #3
    csharpcoder adlı üyeden alıntı: mesajı görüntüle
    neden önce select yapip sonra update yapıyorsunuz?

    Verilerin veri tabanda olup olmadığını kontrolünü yaptırıyorum. direk güncelleme işlemi yaptırmıyorum, birde boş alanlan bırakmaması için,
    acaba bu kayıttan dolayı hata verebilir mi ?
  • 20-07-2018, 11:57:34
    #4
    lood34 adlı üyeden alıntı: mesajı görüntüle
    Verilerin veri tabanda olup olmadığını kontrolünü yaptırıyorum. direk güncelleme işlemi yaptırmıyorum, birde boş alanlan bırakmaması için,
    acaba bu kayıttan dolayı hata verebilir mi ?
    e güncelleme işleminden önce güncellenecek veriler zaten belli değil mi neden tekrardan kontrol ettiriyorsunuz ?
  • 20-07-2018, 12:42:16
    #5
    Kontrolleri kaldırdım, kayıt yapmıyor, döngü dönüyor, ama kayıt işlemi gerçkleşmiyor malesef. İlk başta yazdığım sorguda kayıt var , ama tüm tabloları resimde gördüldüğü gibi aynı yapmakta
  • 22-07-2018, 18:10:31
    #6
    OleDbCommand caner = new OleDbCommand("update IK_DEGERLENDIRMEOLUSTUR set DONEMADI=’" + txt_do_donem_adi.Text 
    + "’, KURUMADI=’" + txt_do_kurum_adi.Text 
    + "’,ICDEGERADI=’" + txt_do_icdonemadi.Text 
    + "’, ISIM=’" + txt_do_isim.Text 
    + "’, SOYISIM=’" + txt_do_soyisim.Text 
    + "’,DEGERBASLA=’" + this.datetimer_giris.Text 
    + "’,DEGERBITIS=’" + this.datetimer_cikis.Text 
    + "’,TELEFON=’" + txt_do_telefon.Text 
    + "’,DIGERTEL=’" + txt_do_diger_tel.Text 
    + "’ WHERE ID ="+lbl_id.Text, con);
    Yukarıdaki kod sizin 2. denediğiniz kod ile aynı. Tek farkı "//id alanı" şeklinde yazdığınız yeri düzenledim.
    Yanlış hatırlamıyorsam, MSSQL sayısal verilerin ' (tek tırnak) içinde gelmesini istemiyor. Bu nedenle çalıştırdığınızda sonuç alamamış olabilirsiniz.
    Ek olarak ben "lbl_id.Text" olarak yazdığım yere güncellemek istediğin kaydın Id numarasını vermen gerek.
  • 23-07-2018, 09:16:43
    #7
    Malesef , SQLi alıp veritabanı kısmında çalıştırdığım zaman sorun yok, Bu MSSQL değil reis ORACLE verdiğin kodu yazdım hata veriyor, kayıt aynı , verdiğin kodda üsten virgüllüyü ' ilede değiştirdim olmadı. tüm kodsal bilgimi kullandım yemedi.belkide hata bir virgülden ibaret bazen insan göremiyor.
  • 10-01-2020, 17:08:43
    #8
    özelden ulaşın akşam geçen yaptığım bir projeyi atayım update işlemini kopya çekin benim projeden

    edit: kaç yıl olmuş ama yine de çözemediysen atayım için rahat etsin kardeşim. D