Giriş Yap / Kayıt Ol

1Beğeni

Cevap Yaz Favorilerime Ekle
Seçenekler Stil
Geri Git   Forum > > C - C++ - C#
Web Hosting öncelajans

C# Hep aynı değeri çekiyor?

Sosyal Ağlarda Paylaş:
  #1  
Okunmamış 18 Haziran 2017, 00:13
Roycolt Adlı Üyenin Avatarı
Let's begin!
 
Üyelik Tarihi: 27 Nisan 2013
Yaş / Cinsiyet: 25 / Erkek
Ad, Soyad: An... Ka...
Mesajlar: 1.184
Beğeniler: 355 / 222
Ticaret: 24, 100%
Merhaba arkadaşlar, yazmakta olduğum basit bir program var. Ancak access üzerinde oluşturduğum tablomdan hep aynı değeri çekiyor. 3 soru var ama sürekli birinci soruyu label'a yansıtıyor. Bunun çözümünü nasıl sağlayabilirim?

Kod:
Select * from soru where dersID=1 order by RND()
Tablolarım ve programım ise;




Konu Roycolt tarafından (19 Haziran 2017, 14:45 ) değiştirilmiştir.
İnanmak kolaydır, biz zor olanı seçtik.
evye resim indir
  #2  
Okunmamış 18 Haziran 2017, 00:57
yetkilibiri Adlı Üyenin Avatarı
WM Aracı
 
Üyelik Tarihi: 28 Mayıs 2017
Cinsiyet: Erkek
Ad, Soyad: Ey... Ye...
Mesajlar: 37
Beğeniler: 7 / 4
Ticaret: 0, 0%
Access DB için sorguyu böyle düzenle kardeşim;

Kod:
SELECT  TOP 1  * FROM soru WHERE dersID=1 ORDER BY rnd(soruID)
  #3  
Okunmamış 18 Haziran 2017, 01:37
Roycolt Adlı Üyenin Avatarı
Let's begin!
 
Üyelik Tarihi: 27 Nisan 2013
Yaş / Cinsiyet: 25 / Erkek
Ad, Soyad: An... Ka...
Mesajlar: 1.184
Beğeniler: 355 / 222
Ticaret: 24, 100%
yetkilibiri Hocam teşekkürler sorun çözüldü. Ancak butona tekrar tıkladığımda işlem yapmıyor. Yani diğer soruyu getirmiyor. Bunu nasıl çözebiliriz?
İnanmak kolaydır, biz zor olanı seçtik.
  #4  
Okunmamış 18 Haziran 2017, 01:45
yetkilibiri Adlı Üyenin Avatarı
WM Aracı
 
Üyelik Tarihi: 28 Mayıs 2017
Cinsiyet: Erkek
Ad, Soyad: Ey... Ye...
Mesajlar: 37
Beğeniler: 7 / 4
Ticaret: 0, 0%
Farklı bir şeyden kaynaklı olabilir. Butonun altındaki kodu paylaşırsan bir bakalım..
  #5  
Okunmamış 18 Haziran 2017, 01:57
Roycolt Adlı Üyenin Avatarı
Let's begin!
 
Üyelik Tarihi: 27 Nisan 2013
Yaş / Cinsiyet: 25 / Erkek
Ad, Soyad: An... Ka...
Mesajlar: 1.184
Beğeniler: 355 / 222
Ticaret: 24, 100%
yetkilibiri Buyrun hocam;

Kod:
sayaç++;
            lblsoru.Text = sayaç.ToString();
            baglan.Open();
            OleDbCommand komut = new OleDbCommand("SELECT  TOP 1  * FROM soru WHERE dersID=1 ORDER BY rnd(soruID)", baglan);
            OleDbDataReader oku = komut.ExecuteReader();
            while (oku.Read())
            {
                label1.Text = (oku["soruBaslik"].ToString());
                radioButton1.Text = (oku["A"].ToString());
                radioButton2.Text = (oku["B"].ToString());
                radioButton3.Text = (oku["C"].ToString());
                radioButton4.Text = (oku["D"].ToString());
            }
            baglan.Close();
İnanmak kolaydır, biz zor olanı seçtik.
  #6  
Okunmamış 18 Haziran 2017, 02:04
yetkilibiri Adlı Üyenin Avatarı
WM Aracı
 
Üyelik Tarihi: 28 Mayıs 2017
Cinsiyet: Erkek
Ad, Soyad: Ey... Ye...
Mesajlar: 37
Beğeniler: 7 / 4
Ticaret: 0, 0%
Bağlantıyı program açılırken aç kapatana kadar açık kalsın.
Yoksa her butona bastığında yeni bağlantı oluşturur.

Form Load Eventine taşı: baglan.Open();
Form Closing Eventine taşı: baglan.Close();

baglan değişkenini de butonun altında tanımladıysan globale alman gerekir.
  #7  
Okunmamış 18 Haziran 2017, 23:05
Roycolt Adlı Üyenin Avatarı
Let's begin!
 
Üyelik Tarihi: 27 Nisan 2013
Yaş / Cinsiyet: 25 / Erkek
Ad, Soyad: An... Ka...
Mesajlar: 1.184
Beğeniler: 355 / 222
Ticaret: 24, 100%
yetkilibiri Dünden beri uğraşıyorum yok çözemedim hocam. Butona tekrar tıklandığında soruyu çekmiyor. Ayrıca diğer butona kodları eklememe rağmen onda hiç işlem yapmıyor.
İnanmak kolaydır, biz zor olanı seçtik.
  #8  
Okunmamış 18 Haziran 2017, 23:38
Avatar Seçilmemiş
aybardumlu.com
 
Üyelik Tarihi: 08 Eylül 2015
Yaş / Cinsiyet: 32 / Erkek
Meslek: Yazılım
Ad, Soyad: Ay... Du...
Mesajlar: 64
Beğeniler: 16 / 0
Ticaret: 6, 100%
Her butona tıkladığında bir sonraki soruyu çekmesini istiyorsan: integer bir değer oluştur değeri 0 olsun. foreach ile 13 içerisinde dön. Dönerken her ferinde int olarak belirlediğin değer +1 ekle. foreach içerisinde yazdığın select kodunda dersID=i olarak tanımla.

Yazmayı dene istersen. Olmazsa hazırladığın kodu yaz tekrar bakalım. Kolay gelsin.
  #9  
Okunmamış 19 Haziran 2017, 13:59
yetkilibiri Adlı Üyenin Avatarı
WM Aracı
 
Üyelik Tarihi: 28 Mayıs 2017
Cinsiyet: Erkek
Ad, Soyad: Ey... Ye...
Mesajlar: 37
Beğeniler: 7 / 4
Ticaret: 0, 0%
Roycolt Bir yerde hata yapıyorsundur. Kodlarının tamamını görmeden bir şey söylemek zor.
Ama şöyle bir yöntem de deneyebilirsin;

İlgili dersID ye ait SoruID leri programın başında tek seferde çek DB den int bir dizeye doldur.
Kod:
SELECT soruID FROM soru WHERE dersID=1
gibi..

Daha sonra bu int dizeden istediğin gibi Random SoruID alıp soruları getirmek için kullanabilirsin.

Kod:
SELECT  TOP 1  * FROM soru WHERE dersID=1 AND soruID = {int diziden aldığın yeni değer}
  #10  
Okunmamış 19 Haziran 2017, 14:41
Roycolt Adlı Üyenin Avatarı
Let's begin!
 
Üyelik Tarihi: 27 Nisan 2013
Yaş / Cinsiyet: 25 / Erkek
Ad, Soyad: An... Ka...
Mesajlar: 1.184
Beğeniler: 355 / 222
Ticaret: 24, 100%
yetkilibiri Hocam kodların tamamı aşşağıdaki gibidir. Aynı şekilde diğer butona da bu kodları ekledim. Tabloda bir sıkıntı olabilir mi diye düşünmeye başladım artık

Tablo Ayarları;
https://prnt.sc/fljved
https://prnt.sc/fljvh5
https://prnt.sc/fljvkn

Kodlar;

Kod:
 public Form1()
        {
            InitializeComponent();
        }
        int sayaç = 0;
        OleDbConnection baglan = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Database3.accdb");
        private void button1_Click(object sender, EventArgs e)
        {
            sayaç++;
            lblsoru.Text = sayaç.ToString();
            baglan.Open();
            OleDbCommand komut = new OleDbCommand("SELECT TOP 1 * FROM soru WHERE dersID=1 ORDER BY rnd(soruID)", baglan);
            OleDbDataReader oku = komut.ExecuteReader();
            while (oku.Read())
            {
                label1.Text = (oku["soruBaslik"].ToString());
                radioButton1.Text = (oku["A"].ToString());
                radioButton2.Text = (oku["B"].ToString());
                radioButton3.Text = (oku["C"].ToString());
                radioButton4.Text = (oku["D"].ToString());
            }
            baglan.Close();
        }
Konu Roycolt tarafından (19 Haziran 2017, 15:19 ) değiştirilmiştir.
İnanmak kolaydır, biz zor olanı seçtik.
Cevap Yaz Favorilerime Ekle


Konuyu toplam 1 kişi okuyor. (0 üye ve 1 Ziyaretçi)
 
Seçenekler
Stil
Normal Normal

Geri Git   Forum > C - C++ - C#


Yetkileriniz
Konu açma yetkiniz: Yok
Cevap Yazma Yetkiniz Yok
Eklenti yükleme yetkiniz: Yok
Mesajınızı değiştirme yetkiniz: Yok

BB code: Açık
İfadeler: Açık
[IMG] Kodları: Açık
HTML kodu: Kapalı




Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şu anki Zaman: 18:38.