wmaraci reklam
lidertakipci

Veritabanından Tüm Sütunu Çekmek

8 Mesajlar 1.208 Okunma
advertseo
wmaraci reklam

AvaRe AvaRe WM Aracı Kullanıcı
  • Ü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.
 

 

wmaraci
reklam

OguzEREN OguzEREN MustafaKemalAtatürk Kullanıcı
  • Ü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.

AvaRe AvaRe WM Aracı Kullanıcı
  • Ü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)



Şöyle bir hata veriyor.
 

 

OguzEREN OguzEREN MustafaKemalAtatürk Kullanıcı
  • Ü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
AvaRe

kişi bu mesajı beğendi.

A good friend would give you the shirt off his back.
wmaraci
wmaraci

YazilimMimari YazilimMimari Eski adi: Turgay Can Kullanıcı
  • Ü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.
AvaRe

kişi bu mesajı beğendi.

https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)

enoua enoua www.enderaric.com Kullanıcı
  • Üyelik 23.01.2015
  • Yaş/Cinsiyet 33 / E
  • Meslek Bilgisayar Mühendisi
  • Konum İstanbul Anadolu
  • Ad Soyad E** A**
  • Mesajlar 227
  • Beğeniler 45 / 35
  • Ticaret 0, (%0)

AvaRe adlı üyeden alıntı



Şöyle bir hata veriyor.


rdr[0].tostring dener misin i yerine
 

 

www.enderaric.com
Skype : enoua_engineer
Bilgisayar Mühendisi

YazilimMimari YazilimMimari Eski adi: Turgay Can Kullanıcı
  • Ü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)

enoua adlı üyeden alıntı

rdr[0].tostring dener misin i yerine


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.
enoua

kişi bu mesajı beğendi.

https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)

enoua enoua www.enderaric.com Kullanıcı
  • Üyelik 23.01.2015
  • Yaş/Cinsiyet 33 / 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
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al