-
Üyelik
10.03.2014
-
Yaş/Cinsiyet
33 / E
-
Meslek
Yazılımcı
-
Konum
İstanbul Avrupa
-
Ad Soyad
B** T**
-
Mesajlar
100
-
Beğeniler
37 / 15
-
Ticaret
0, (%0)
Merhaba arkadaşlar, Örneğin SELECT kul_adi FROM kullanici_tablosu dediğimde bütün kul_adi sütununda bulunan kayıtları textbox'a atmak istiyorum.
Elimde şöyle bir kod var ama ondada sadece 1 tane ve en son satırda bulunan kaydı çekiyor.
SqlConnection baglanti = new SqlConnection(@"server=.\SQLEXPRESS ; database=deneme; Trusted_Connection=yes");
baglanti.Open();
SqlCommand kmt=new SqlCommand("SELECT kul_adi FROM kullanici_tablosu",baglanti)
SqlDataReader rdr=kmt.ExecuteReader();
While(rdr.Read()){
TextBox1.Text=rdr[0].ToString();
}
baglanti.close();
TextBox1.Text=rdr[1].ToString(); dediğimde ise hata veriyor.
-
Üyelik
15.10.2012
-
Yaş/Cinsiyet
30 / E
-
Meslek
Computer Engineering
-
Konum
İzmir
-
Ad Soyad
O** E**
-
Mesajlar
216
-
Beğeniler
54 / 61
-
Ticaret
0, (%0)
Öncelikle Textbox'ını çoklu satır haline getir(textbox'a tıkla ok işareti çıkacak orda MultiLine görürsün)
sonra while döngüsü içerisine for veya foeach döngüsü aç ve rdr.tables.count sayısı kadar dönmesini sağlamalısın. (veri tabanından gelen satır sayısı kadar dönecek kodu bu şekilde olması lazım tam hatırlamıyorum ama buna benzer)
Döngünün içerisine şunu yazacaksın
textbox1.text=textbox1.text+rdr[i].toString()+"\n";
(Kodu kısaca açıklayayım rdr[i] yazan kısım veritabanından çektiğimiz tablonun i numaralı satırıdır. (burdaki i for döngüsünden geliyor)
"\n" ile alt satıra geçiyoruz.)
A good friend would give you the shirt off his back.
-
Üyelik
15.10.2012
-
Yaş/Cinsiyet
30 / E
-
Meslek
Computer Engineering
-
Konum
İzmir
-
Ad Soyad
O** E**
-
Mesajlar
216
-
Beğeniler
54 / 61
-
Ticaret
0, (%0)
pardon direk rdr[i] şeklinde değilde rdr.tables[i] şeklinde birşey olması gerekiyor orası. Visual Studiom kurulu olsa direk kodu atardım. rdr.tables.rows[i] şeklinde dene bunları biraz araştır bulursun
1 kişi bu mesajı beğendi.
A good friend would give you the shirt off his back.
-
Üyelik
25.06.2012
-
Yaş/Cinsiyet
38 / E
-
Meslek
Engineering Director
-
Konum
İstanbul Avrupa
-
Ad Soyad
T** C**
-
Mesajlar
771
-
Beğeniler
2 / 260
-
Ticaret
0, (%0)
Aslında hatayı IDE göze sokulacak şekilde yazmış.. IndexOutofRange.. bu hatanın okursak şunu diyor..
Güzel kardeşim sen tek bir sutunu yani ad sutununu çekiyorsun ve sonrasında 4 adet sutun çekmek istiyorsun ama reader nesnen içinde 1 adet var..
Tablo içindeki ad sutununda yer alan tüm adları bi text içine basmak istiyorsan, multiline text yapmalısın textBox'ın özelliğini.. yok arkadaşım ben TextBox içine bascam diyorsanda hay hay derim.. Ama TextBox'ın default karakter limitine bakmalısın, eğer bir limit varsa o limiti kaldırmalısın çünkü ne kadar data gelceğini bilmiyoruz..
Sonrasında ;
while loop içinde reader 'ile ad 'ları okurken onları bir değişkene atamalısın ve atama işlemi bittiğinde textbox'ın text özelliğine set etmelisin..
while loop üzerinde bir yere String adlar = ""; diye bir şey tanımlayınız
adlar = adlar + rdr[0] + ",";
TextBox.Text = adlar;
şeklinde.. untmadan "," fazladan 1 adet gelecek, adlar.SubString() - > metodu ile sonuncu karakteri almazsın..
yada multline özelliğini aktif edecekseniz, tavsiyem list içine doldurmanızdan yanadır.
1 kişi bu mesajı beğendi.
https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)
enoua
www.enderaric.com
Kullanıcı
-
Üyelik
23.01.2015
-
Yaş/Cinsiyet
34 / E
-
Meslek
Bilgisayar Mühendisi
-
Konum
İstanbul Anadolu
-
Ad Soyad
E** A**
-
Mesajlar
227
-
Beğeniler
45 / 35
-
Ticaret
0, (%0)
rdr[0].tostring dener misin i yerine
www.enderaric.com
Skype : enoua_engineer
Bilgisayar Mühendisi
-
Üyelik
25.06.2012
-
Yaş/Cinsiyet
38 / E
-
Meslek
Engineering Director
-
Konum
İstanbul Avrupa
-
Ad Soyad
T** C**
-
Mesajlar
771
-
Beğeniler
2 / 260
-
Ticaret
0, (%0)
0 yazarsa aynı ad'dan for loop içinde 4 adet döndüğünden, 4 tane olacaktır.
for loop'u kaldırıp, reader nesnesi içinde gelecek olan değerin alias'ı ad olarak belirli zaten onu yazması yada reader array'inin ilk index'i belirttiğin gibi 0 'ı çekmesi yeterli olacaktır.
1 kişi bu mesajı beğendi.
https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)
enoua
www.enderaric.com
Kullanıcı
-
Üyelik
23.01.2015
-
Yaş/Cinsiyet
34 / E
-
Meslek
Bilgisayar Mühendisi
-
Konum
İstanbul Anadolu
-
Ad Soyad
E** A**
-
Mesajlar
227
-
Beğeniler
45 / 35
-
Ticaret
0, (%0)
Turgay Can adlı üyeden alıntı
0 yazarsa aynı ad'dan for loop içinde 4 adet döndüğünden, 4 tane olacaktır.
for loop'u kaldırıp, reader nesnesi içinde gelecek olan değerin alias'ı ad olarak belirli zaten onu yazması yada reader array'inin ilk index'i belirttiğin gibi 0 'ı çekmesi yeterli olacaktır.
Aynen. dikkat ettim tekrar for loop gereksiz olmuş. dr[0] ı alıyor [1] e geldiğinde outofindex hatası verir. Dediğiniz gibi "ad" yada 0 indexi kullanmak daha mantıklı.
www.enderaric.com
Skype : enoua_engineer
Bilgisayar Mühendisi