st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); String sql = "select * from Table1"; rs = st.executeQuery(sql); rs.next(); t.setText(rs.getString("Fname")); t1.setText(rs.getString("Lname")); t2.setText(rs.getString("Age"));
}catch(Exception ex){
}
javada butonuma bu kodu ekledim. Kod çalışıyor. databaseden satırı siliyor fakat sildikten sonra framedeki üç adet textfield güncellenmiyor. Programı yeniden açtıgımda güncelleniyor ancak. Programı tekrar açmadan yapmanın bir yolu varmıdır acaba ? Yardımlar için şimdiden teşekkürler.
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.
Merhaba; try { ... } catch yapısı, bir hata oluşturana kadar kodları satır satır çalıştırır. ancak bir satırda hata oldugunda try in içindeki kod bloğunu çaliştirmayı bırakıp catch (Exception e) { ... } li kısma geçer.
Eğer uygulamanız istediğiniz gibi çalışmıyorsa, fakat herhangi bir hatada döndürmüyorsa, bunun sebebi [%90] bir exception fırlatıldığında, yapılacak hiçbirşey belirtilmemiş olmasıdır.
kodunuzu şu şekilde değiştirir misiniz ?
try { // burda değişiklik yok ... ... ... } catch (Exception e) { // printStackTrace() methodu, bir Exception fırlatıldığında, Size çok detaylı bir çıktı sunar. e.printStackTrace(); }
Bu değişiklik sonucu, bir hata mesajı ile karşılaşıyor musunuz?
bunun dışında frame e repaint(), invalidate() falan çekmeyide deneyin bi :)
Öncelikle cevabınız için çok teşekkür ederim. Bugünlerde pek fazla yardım edecek kimseyi bulamıyorum :).
Söylediğiniz gibi ex.printStackTrace(); satırını catch bloguna ekledim. ResultSet i close ederken exception fırlatıyomuş. Ben de st.close() ile rs.close(); un yerleini değiştirdim problem halloldu. Demekki statement ı kapatmadan önce resultseti kapatmak gerekiyomuş. Mantığını anlamadım ama :D. Bir de neden böyle olduğunu anlatırsanız sevinirim. Tekrar çok teşekkür ederim yardımınız için.
resultset & exception arasında şöyle bir durum sözkonusu olabilir belki; [ki bundan kesinlikle emin değilim] mesela bir "select * from hede" sorgusu çalıştırdınız ve atıyorum 123.456.789 sonuç döndü. ve tablonuzda 22 kolon veri var. bu durumda zaten bütün herşeyi resultset objesinde tutmayacaktır. siz rs.next dediğiniz zamanlarda 10 ar 10 ar belki 100er 100er java sizin statement ınızı tekrar kullanbilir verilerin gerisini çekmek için
belki bu yüzden resultsetle işiniz bitene kadar statement ı kapatmamanız gerekebilir. birde, try - catch ile birlikte kullanılan finally diye bir bölüm daha var. bu finally sizin try içine yazdığınız kod hatasız çalışınca veya bir yerde hata oldu catch { } bölümüne düştü; [farkmetmez iki durumdada] en son çalıştırılacak kodları belirtmenizi sağlayan bir bölümdür.
veritabanınında işlemlerinizi yaptıktan sonra rs yada statementl objelerini finally de kapatmanız daha uygun olur diye düşünüyorum, çünkü şöyle bir durumla karşılaşabilirsiniz;
Statement s; ResultSet rs; try { String sql = "selekt from asd"; s = con.createStatement(); rs = s.executeQuery(sql);
şimdi burdaki sorgu cümlesi yanlış olduğu için, muhtemelen statement çaliştirilip, resultset e sonuç atılmayacak resultsetten veri almaya çalişincada uygulama exception firlaticak try blogundan catch bloguna geçicek.
ee ? rs.close(); s.close() çaliştirilmayacak?
işte bu durumlar için try - catch - finally kullanılması tavsiye edilir.
Statement s; ResultSet rs; try { String sql = "selekt from asd"; s = con.createStatement(); rs = s.executeQuery(sql);
javada butonuma bu kodu ekledim. Kod çalışıyor. databaseden satırı siliyor fakat sildikten sonra framedeki üç adet textfield güncellenmiyor. Programı yeniden açtıgımda güncelleniyor ancak. Programı tekrar açmadan yapmanın bir yolu varmıdır acaba ? Yardımlar için şimdiden teşekkürler.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜ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.
< Bu mesaj bu kişi tarafından değiştirildi motorix25 -- 13 Temmuz 2012; 15:53:29 >