Formun load kısmına yazdım ve formu açmaya çalıştığımda hata aldım ExecuteScalar requires an open and available Connection. The connection's current state is closed.
Tamam teşekkürler oldu Mesela Davetliler kısmından sadece No ya kaydedilmiş verileri toplamak istesem nasıl yaparım örneğin 1 veri girişi yaptık ama no kısmına 2 kaydettirdik o 2 diye nasıl mesaj verdiririz? Count() içinemi yazcan
Ben şöyle demek istemiştim kayıt 1 tane var ama içerisinde no ya 2 yazdılar ben toplam gelen kişi sayısına o kayıtla no kısmını toplatarak yazdırmak istiyorum ( 1+2 ) şeklinde yani gelen kişi sayısı 3 yazsın
Böyle yapılabilir okuyucu ile; int sayac, toplam, no; baglantiadi. Open(); OleDbCommand komut = new OleDbCommand("Select * From tabloismi",baglantiadi); OleDbDataReader okuyucu = komut. ExecuteReader(); while(okuyucu. Read()) { //eğer tablonun no alan adı 0 indexteyse sayac++ no = Int32.Parse(okuyucu[0].ToString()); toplam = sayac+no; } baglantiadi. Close(); lbltoplam. Text = toplam. ToString(); Anladıgım bu yanlıs anladıysam bıraz daha acık anlatırsan sevınırım
Murat Kızıltuğ Benim istediğim şöyle Şimdi mesela 3 tane kayıt girildiğinde 3 tane kayıt var yazıyor ben ek olarak no daki değerleride hesaplayıp 3 tane kayıt a eklenmesini istiyorum örneğin Davetli yanında 3 kişiyle birlikte geldi gelen kişi sayısı toplam 4 olsun
int sayac, toplam, no; baglantiadi. Open(); OleDbCommand komut = new OleDbCommand("Select * From tabloismi",baglantiadi); OleDbDataReader okuyucu = komut. ExecuteReader(); while(okuyucu. Read()) { sayac++ no = Int32.Parse(okuyucu[3].ToString()); toplam += sayac+no; } baglantiadi. Close(); lbltoplam. Text = toplam. ToString(); bu yazdıgım kod şöyle yapacak toplam kayıt sayısı ile davetli sayilarini toplayacak
Select count(*) from tabloadı
İsmail teşekkür ederim
Ismail Esilaa tam olarak kod şeklinde nasıl yazabilirim yardımcı olurmusunuz
Direk çek executenonscalar ile yazdir ornek kod yazim bak simdi
Oledbcommand cmd = new oledbcommand ("select count(*) from tabloadi",baglanti);
Messagebox. Show(cmd. Executescalar().tostring());
Gibi
Ismail Esilaa dediğinizi yapamadım hata aldım
Ss at
Baglantı baglanti kısmını farkettim düzelttim fakat diğerleri gitmedi
Yardımcı olabilecek biri var mı
sorun çıkmaması lazım eğer bağlantıyı düzelttiysen!
Oledbcommand cmd = yap eksik yazmisim
copy paste ile kod yazılmasss
Ben zaten mantiği anlasin diye yazdim o kodu tam olarak ne yapmak istedigini bilmedigim icin kendine gore uyarlar kullanir
Formun load kısmına yazdım ve formu açmaya çalıştığımda hata aldım ExecuteScalar requires an open and available Connection. The connection's current state is closed.
Buttona yazdım yine olmadı
Bir dakika birşey denicem
OleDbCommand cmd = new OleDbCommand("SELECT Count(*) FROM Davetliler", baglantı);
MessageBox. Show(cmd. ExecuteScalar().ToString());
Baglantinda hata var acmamissin su kodun tamamini cek koy
Baglantiyi acman lazim baglantı. Open(); yaz ustune
Tamam teşekkürler oldu Mesela Davetliler kısmından sadece No ya kaydedilmiş verileri toplamak istesem nasıl yaparım örneğin 1 veri girişi yaptık ama no kısmına 2 kaydettirdik o 2 diye nasıl mesaj verdiririz? Count() içinemi yazcan
En sonuna sorgunun kosul olarak eklersin where ile mesela select count(*) from Davetliler wjere no=2 gibi
Nosu 2 olanlarin miktarinini dondurur
Ben şöyle demek istemiştim kayıt 1 tane var ama içerisinde no ya 2 yazdılar ben toplam gelen kişi sayısına o kayıtla no kısmını toplatarak yazdırmak istiyorum ( 1+2 ) şeklinde yani gelen kişi sayısı 3 yazsın
Böyle yapılabilir okuyucu ile;
int sayac, toplam, no;
baglantiadi. Open();
OleDbCommand komut = new OleDbCommand("Select * From tabloismi",baglantiadi);
OleDbDataReader okuyucu = komut. ExecuteReader();
while(okuyucu. Read())
{
//eğer tablonun no alan adı 0 indexteyse
sayac++
no = Int32.Parse(okuyucu[0].ToString());
toplam = sayac+no;
}
baglantiadi. Close();
lbltoplam. Text = toplam. ToString();
Anladıgım bu yanlıs anladıysam bıraz daha acık anlatırsan sevınırım
Murat Kızıltuğ Benim istediğim şöyle Şimdi mesela 3 tane kayıt girildiğinde 3 tane kayıt var yazıyor ben ek olarak no daki değerleride hesaplayıp 3 tane kayıt a eklenmesini istiyorum örneğin Davetli yanında 3 kişiyle birlikte geldi gelen kişi sayısı toplam 4 olsun
Zana zahmet tablonun resmini atarmısın hemen çözüm bulayım
O no olarak kastetdıgın id mi ?
Hayır DavetliSayisi
ha tmm şimdi oldu
id ile yapıyorum zaten id leri tek tek hesaplayıp buluyor ama benim istediğim id ile davetlisayisini da toplayıp yazdırmak
int sayac, toplam, no;
baglantiadi. Open();
OleDbCommand komut = new OleDbCommand("Select * From tabloismi",baglantiadi);
OleDbDataReader okuyucu = komut. ExecuteReader();
while(okuyucu. Read())
{
sayac++
no = Int32.Parse(okuyucu[3].ToString());
toplam += sayac+no;
}
baglantiadi. Close();
lbltoplam. Text = toplam. ToString();
bu yazdıgım kod şöyle yapacak
toplam kayıt sayısı ile davetli sayilarini toplayacak
Deniyorum
Buradaki no olarak bahsettiğiniz şey nedir
davetlisayilarini sayiya cevırıyor ve int tipinde no isimli degiskene atiyor
No da hata veriyor
yukarıda tanımladıgım int tipinde sayac, toplam var ya oraya bide no adında ekle veya yeni no isimli int olustur duzelır hata
Noyu ilk basta tanimlarken 0 a esitle madem int no = 0 yap en ustte int sayac, toplam, no burdaki noyuda kaldir
zaten onlara baslangıcta deger atmadıgın zaman otomatık olarak 0 degerını alıyorlar gerek kalmıyor boyle bır seye
Ama tanimlayip degere esitlemezsen derlerken hata cikabiliyor o yuzden dedim
int sayac, toplam, no; yapınca bu seferde sayac la toplam hata veriyor
dedıgın dogruda cıksa cıksa uyaro hatası cıkar oda 1 2 kere derledıkten sonra gıder programın calısmasına engel olmaz
Şu kodları ve hatalari cekip koysana komple
Aynen dediği gibi ismail arkadaşın sen formun kod kısmının resmını cekıp atıver zana zahmet
Sizin kodlarınızın olduğu kısım
Int sayacla toplamida sifira esitle basta duzelicek
O değişkenleri en uste tanımla global olarak sıkıntı burada
Murat Kızıltuğ gordugun gibi ilk basta deger olmadan islem yapmaya calistinda hata veriyor uyari degil
İsmail kundakcı dediğini yaptım oldu şimdi deniyeceğim
Dedigimi dene duzelicek buyuk ihtimal
Global ile alakasi yok hepsi ayni blokta zaten degerleri olmadigi icin hata cikiyor o yuzden 0 vermeli ve duzelmis
Doğru bende nedense hata vermemişti.
Kodun olduğu formu açamadım
aynısını sımdı denedım global yapınca hata gıdıyor kodların bulundugu blogta tanımlayınca ıllakı deger atmak gerekıyor mus global tanımlanınca deger atmasada oluyor
ha pardon cevırdıgımız sey ztn strın tıpınde deılmıs
Veritabanında zaten numara tipinde kayıtlıydı
davetlısayısı sayı tıpındeymıs onu farketmedım dırek no yu soyle yap
no = okuyucu[3];
3 yazan yeri "DavetliSayisi" yap
yok yok sorun şeyden dolayı sayı olan bı degerı sayıyıa cevırmeye calışmışız onun hatasını verıyor
dedıgımı yaparsa sorun cozulecektır
Sorun orda degil bence stringe cevirip tekrar inte parse etmissiniz orda olsaa sorun cikmamali
no = okuyucu[3]; kısmı hata verdi
Dedigimi dene birde
ne hatası ?
Cannot implicitly convert type 'object' to 'int'. An explicit conversion exists (are you missing a cast?)
ismailinkını dene olmazsa soyle
3 yazan yeri okuyucu["DavetliSayisi"]
İsmailin dediği gibi yaptım sorun devam ediyor hala
aynı anlama gelmıyor mu ha "DavetliSayısı" ha 3ıncu alan
yok sorun onda deıl bı sn gurur
Cunku deger object tipinde geliyor no= Convert. Toint32(okuyucu["DavetliSayisi"] boyle olcak
Son attigimi dene
Valla istediğimi yapmamı sağlarsanız minnettar kalırım size
ılkte ztn oyledı
ıns basaracagız ismail ile
Son attigimi denesene
tmm dene ismalinkini olmazsa soyle
Mobil olmasam 0 dan yazardim boyle parca parca bakalim nolacak
Varmı herhangi bi sorun
Program açıldı fakat kodun olduğu formu açamadım
Object cannot be cast from DBNull to other types.
Hatası verdi
Veritabanini ss atsana tabloyu
attı yukarıda var tablo resmi
Eski yorumlarda mevcut
Verilerin oldugu kismi gormek istiyorum
Bos veri var buyuk ihtimal o kolonda orda patliyor
Atayım veritabanını birde bir sorunum daha var
Gurur tablodaki DavetliSayisi ni metin olarak degistir sorun cozulecektir ama no = Int32.Parse(okuyucu[3].ToString());
yap gene
Cabuk olursan sevinirim
Sorun bi hucrede bos veri var bence gelsin bakalim ss
Bak o hucreler bos o yuzden oluyor onlari sayiyla doldur duzelicek
dedıgın dogru boş veri bulunmakta oraya veri gir gurur
0 0 0 yazdım da birde şöyle bir sorunum daha önce kaç kez veritabanına veri girdim programı kapatıp açtıktan sonra veriler gidiyor bazenleri
Delete sorgusu calisiriyosundur biyerde farkinda olmadan duzeldi dimi hata simdi?
sen onu bi metin yap davetli sayisini 5 fln gir oraya ve no ya sunu yaz no = Int32.Parse(okuyucu[3].ToString());
bu yap bı boyle dene sorun gıdecektır
Object cannot be cast from DBNull to other types. Hatası aldım acaba veritabanına 0 0 0 diye girdim diye mi
Zaten direk benim attigin son kodda integer yapiyor string yapip tekrar int yapmanin manasi yok sanirim
Neyse ben kaciyorum benden bu kadar hadi eyvallah