Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
12
Cevap
1352
Tıklama
0
Öne Çıkarma
C# Datetimepicker'dan seçilen tarihe göre veri silme
T
10 yıl
Onbaşı
Konu Sahibi

Arkadaşlar bir tane datetimepicker var . buradan seçilen tarihe göre veri tabanında silme işlemi yapmak istiyorum . Bir türlü yapamadım . Yardımcı olur musunuz? Kodlarım:
 private void button2_Click(object sender, EventArgs e) 
{
baglanti.Open();
komut.Connection = baglanti;
komut.CommandText = "Delete From Tablo1 where tarih='" + dateTimePicker2.Value.ToShortDateString() + "'";
komut.ExecuteNonQuery();
komut.Dispose();
baglanti.Close();
ds.Tables["Tablo1"].Clear();
listele();
}

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



.
10 yıl
Teğmen

Veri tabnından tarih silmek istiyorsun fakat string formatında gönderiyorsun hata almanın sebebi o internetten tarih ile ilgili bir sql komutuna bak direk anlarsın.


Bu mesaja 1 cevap geldi.
T
10 yıl
Onbaşı
Konu Sahibi

Tam olarak ne yapmam gerekiyor . toShortDateString i sildiğimde , butona bastığım zaman hata vermiyor fakat verileri de silmiyor .


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @.SoS.
.
10 yıl
Teğmen

Hangi veritabanını kullandığınız bilmiyorum fakat toShortDateString in sonuna .replace() fonksiyonunu deneyin date time size tarihi 15/17/2009 gibi veriyordur fakat veritabanınızda 15.17.2009 şeklinde olabilir yani bu örenek için replacin içine ('/','.') yazmanız gerekebilir.


Bu mesaja 1 cevap geldi.
T
10 yıl
Onbaşı
Konu Sahibi

Veritabanında tarih satırını metin biçiminde yaparsam kodlar sorunsuz çalışıyor fakat tarih saat yaparsam butona basınca hata veriyor . Takvimin tarih biçimi ile veritabanındaki tarih biçimi aynı . Anlamadım gitti garip işler


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @.SoS.
.
10 yıl
Teğmen

Access mi kullanıyorsunuz? tırnak yerine # veya & deneyin.


Bu mesaja 1 cevap geldi.
T
10 yıl
Onbaşı
Konu Sahibi

Evet hocam access kullanıyorum . Dendeim yine olmadı belki yardımı dokunur resimler :
Veritabanı --->https://store.donanimhaber.com/db/46/c8/db46c88e2ad5fc0e11f2171cb1d58d7c.png] vehttps://store.donanimhaber.com/32/8a/af/328aaf82d364b3c9484b037033b5e3f1.png


Uygulama görünümü --->https://store.donanimhaber.com/6a/89/cf/6a89cfe27246747191208f8ea87a6e52.png


Hata mesajı --->https://store.donanimhaber.com/45/f0/72/45f072cf5c5106a6a2167611d4840f3c.png
< Resime gitmek için tıklayın >< Resime gitmek için tıklayın >< Resime gitmek için tıklayın >< Resime gitmek için tıklayın >


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @.SoS.
.
10 yıl
Teğmen

komut.CommandText = "Delete From Tablo1 where tarih=#" + dateTimePicker2.Value.ToShortDateString().Replace('.', '/') + "#";


Bu mesaja 1 cevap geldi.
T
10 yıl
Onbaşı
Konu Sahibi

Eyvallah hocam sayende bu sefer oldu . Beni büyük bir dertten kurtardın .
Bir sorum daha olacak şimdi şöyle birşey yapabilirmiyiz kullanıcı datetimepicker dan bir gün seçince textbox lara veritabanında o günün açıklaması varsa veriler çekilsin. Yani diyelim takvimde 20 ocağı seçtik . Daha önceden o güne veri eklemiştik . Önceden eklediğimiz veriler textbox lara gelsin Textbox1 e "ad" textbox 2 ye "açıklama". Hem böylece kullanıcı notları düzenleyebilir.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @.SoS.
.
10 yıl
Teğmen

datetimpicker cahned value (varsayılan olaydır çift tıklarsanız direk oluşur butonun clikc olayı gibi)

cmd.commandtex="select ad,açıklama from tablo1 where tarih=#datetimepicker.value.toshortdatestring.replace('.','/');
oleddatareader rdr = cmd.executenonreader();
while(rdr.read())
{
try{
textbox1.text = rdr["ad"].tostring();
textbox2.text=rdr["açıklama"].tostring();
}
catch{}

}
connection.close()


İşim var aceleyle yazdım anlaşılıyor herhalde :)


Bu mesaja 1 cevap geldi.
T
10 yıl
Onbaşı
Konu Sahibi

 private void dateTimePicker1_ValueChanged(object sender, EventArgs e) 
{
baglanti.Open();
komut.CommandText = "select ad,açıklama from Tablo1 where tarih=#" +dateTimePicker1.Value.ToShortDateString().Replace('.','/')+ "#";
OleDbDataReader dr = komut.ExecuteReader();
while (dr.Read())
{
try
{
textBox1.Text = dr["ad"].ToString();
textBox2.Text = dr["açıklama"].ToString();
}
catch { }
baglanti.Close();
}
}

Kodları yazdım fakat "ExecuteReader: Connection özelliği başlatılmamış." hatası alıyorum takvimden gün seçince





< Bu mesaj bu kişi tarafından değiştirildi TecnoDunya -- 29 Ocak 2016; 0:07:05 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @.SoS.
.
10 yıl
Teğmen

Hocam sizin önce biraz temel c# çalışmanız lazım daha sonra bu database işlerine girmeniz lazım bence :)

baglanti.open(); satırının altına şunu ekleyin
cmd.connection = baglanti;


Bu mesaja 1 cevap geldi.
T
10 yıl
Onbaşı
Konu Sahibi

Hocam bu seferde "Okuyucu kapalıyken Read öğesini çağırma girişimi geçersiz." hatası alıyorum . baglanti.close kodunu sildiğimde textbox a veri geliyor fakat bu seferde önceki kodlarda hata çıkıyor . Butona bastığımda "Bağlantı kapatılmadı. Bağlantının geçerli durumu: açık." hatası geliyor




Bu mesajda bahsedilenler: @.SoS.
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.