• 15-12-2015, 10:07:59
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Arkadaşlar merhabalar kolay gelsin.

    C# ta bir bölümde yardımcı olmanızı isteyeceğim.!


    Ekranda bir form üzerinde bir çalışmam da bir kaç farklı GroupBox'larım var ve üzerine her form'a göre farklı RadioButton koymam gerekiyor.

    Ama GroupBox'ların her birinde gelecek olan RadioButton'ların dinamik olması gerekmekte.

    Yani SQL'den gelen veriye göre 3 ise 3, 5 ise 5 tane Dinamik RadioButton oluşturması gerekmekte.


    Bunu nasıl yapabilirim acaba?
  • 15-12-2015, 11:45:11
    #2
    öncelikle tavsiyem groupbox değilde FlowLayoutPanel kullanman nedeni ise otomatik yerleşim yapması, groupbox'ta her oluşturacağın radiobutton için location belirlemen gerekir, bunun yerine flowlayoutpanel kullanırsan (ben aşağıdaki örnekte öyle yaptım) radiobuttonları otomatik yerleştirecektir.



    panel1.Controls.Clear();
                for(int i=1; i<=int.Parse(textBox1.Text); i++)
                {
                    RadioButton rbutton = new RadioButton { Text = "RadiButton" + i.ToString() };
                    panel1.Controls.Add(rbutton);
                }

    Not:
    Benim textbox'a bağladığım count sayısını sql'dan gelen count'a bağlamayı unutmayın
  • 15-12-2015, 12:08:14
    #3
    @emrebeyoglu'nun dediği gibi yapabilirsin. Location kısmını ayarlamak için önce ekran tarafında bir tasarım yap, mesela 5 tane kayıt gelecekmiş gibi. Onların Location bilgilerini al kod tarafında ayarlaman daha kolay olur.
  • 16-12-2015, 10:24:31
    #4
    emrebeyoglu adlı üyeden alıntı: mesajı görüntüle
    öncelikle tavsiyem groupbox değilde FlowLayoutPanel kullanman nedeni ise otomatik yerleşim yapması, groupbox'ta her oluşturacağın radiobutton için location belirlemen gerekir, bunun yerine flowlayoutpanel kullanırsan (ben aşağıdaki örnekte öyle yaptım) radiobuttonları otomatik yerleştirecektir.



    panel1.Controls.Clear();
                for(int i=1; i<=int.Parse(textBox1.Text); i++)
                {
                    RadioButton rbutton = new RadioButton { Text = "RadiButton" + i.ToString() };
                    panel1.Controls.Add(rbutton);
                }

    Not:
    Benim textbox'a bağladığım count sayısını sql'dan gelen count'a bağlamayı unutmayın
    Peki TextBox yerine ben kullanıcıya bir değer girdirmiyorum. Direk SQL'den tek tablo yada bir tablo içerisinde belirli sütundakileri yazdırmak istiyorum onu nasıl yapabilirim?
    Örn: SQLTablo adında Tablom var içinde Ad ve Soyad diye iki farklı bölüm var. Ben 1.GroupBox yada Panel içine Ad kısmındakileri 2.Panele ise Soyad kısmındakileri yazdırmam gerekiyor bu noktada nasıl çözebilirim acaba?
  • 16-12-2015, 11:33:30
    #5
    sql komutu ile count alarak maximum değeri buldurabilirsin
  • 16-12-2015, 16:03:48
    #6
    emrebeyoglu adlı üyeden alıntı: mesajı görüntüle
    sql komutu ile count alarak maximum değeri buldurabilirsin
    Hocam, dediğiniz sistemi;

    Select COUNT(GrsGuc) From ConfigTable

    SELECT GrsGuc FROM ConfigTable Max


    İki şekilde'de denediğimde aşağıdaki gibi bir hata aldım.




    *************************************************

    Bir de şöyle bir kodum var. Bunda buluyor fakat sürekli ilk sıradakini ekliyor ve kaç tane diye bir değer belirttiğim için 4 RadioButton ekliyor.
    private void button1_Click(object sender, EventArgs e)
            {
        
                SqlCommand veri = new SqlCommand("SELECT Name FROM Locations", baglan);
    
                SqlDataReader oku;
                baglan.Open();
                oku = veri.ExecuteReader();
                while (oku.Read())
                {
     
              //  string[] stringArray = new string[3];
    
                System.Windows.Forms.RadioButton[] radioButtons = new System.Windows.Forms.RadioButton[5];
    
                for (int i = 0; i < 4; ++i)
                {
                    //stringArray[0] = (oku["Name"].ToString());
     
                    radioButtons[i] = new RadioButton();
    
                    //  dataGridView1.DataSource = oku["Name"].ToString();
    
                    radioButtons[i].Text = oku["Name"].ToString();
     
                    radioButtons[i].Location = new System.Drawing.Point(20, 20 + i * 20);
                    
                    this.Controls.Add(radioButtons[i]);
                }
           
                }
    
                oku.Close();
                baglan.Close();
                 
            }
  • 16-12-2015, 16:44:17
    #7
    mknc adlı üyeden alıntı: mesajı görüntüle
    Hocam, dediğiniz sistemi;

    Select COUNT(GrsGuc) From ConfigTable

    SELECT GrsGuc FROM ConfigTable Max


    İki şekilde'de denediğimde aşağıdaki gibi bir hata aldım.




    *************************************************

    Bir de şöyle bir kodum var. Bunda buluyor fakat sürekli ilk sıradakini ekliyor ve kaç tane diye bir değer belirttiğim için 4 RadioButton ekliyor.
    private void button1_Click(object sender, EventArgs e)
            {
        
                SqlCommand veri = new SqlCommand("SELECT Name FROM Locations", baglan);
    
                SqlDataReader oku;
                baglan.Open();
                oku = veri.ExecuteReader();
                while (oku.Read())
                {
     
              //  string[] stringArray = new string[3];
    
                System.Windows.Forms.RadioButton[] radioButtons = new System.Windows.Forms.RadioButton[5];
    
                for (int i = 0; i < 4; ++i)
                {
                    //stringArray[0] = (oku["Name"].ToString());
     
                    radioButtons[i] = new RadioButton();
    
                    //  dataGridView1.DataSource = oku["Name"].ToString();
    
                    radioButtons[i].Text = oku["Name"].ToString();
     
                    radioButtons[i].Location = new System.Drawing.Point(20, 20 + i * 20);
                    
                    this.Controls.Add(radioButtons[i]);
                }
           
                }
    
                oku.Close();
                baglan.Close();
                 
            }

    Sql komutunu execute edip datareader ile gelen veriyi okuyup tablodaki veri sayısını çekebilirsin int parse içinde sql komutu çalıştıramazsın hocam
  • 17-12-2015, 09:09:27
    #8
    emrebeyoglu adlı üyeden alıntı: mesajı görüntüle
    Sql komutunu execute edip datareader ile gelen veriyi okuyup tablodaki veri sayısını çekebilirsin int parse içinde sql komutu çalıştıramazsın hocam
    Hocam dediğiniz sistemi yapmaya çalıştığımda aşağıdaki gibi bir kod oluşturdum fakat yine bir hata alıyorum ve istediğim olay çalışmıyor malesef.

    private void button3_Click(object sender, EventArgs e)
            {
     
                SqlCommand komut = new SqlCommand("SELECT COUNT(GrsGuc) FROM ConfigTable", baglan);
                komut.Connection = baglan;
                baglan.Open();
                SqlDataReader oku = komut.ExecuteReader();
                oku = komut.ExecuteReader();
                
                while (oku.Read())
                {
                    panel1.Controls.Clear();
                    for (int i = 1; i <= oku; i++)
                    {
                        RadioButton rbutton = new RadioButton { Text = "RadiButton" + i.ToString() };
                        panel1.Controls.Add(rbutton);
                    }
    
                }
                oku.Close();
                baglan.Close();
          
            }
  • 17-12-2015, 18:06:37
    #9
    mknc adlı üyeden alıntı: mesajı görüntüle
    Hocam dediğiniz sistemi yapmaya çalıştığımda aşağıdaki gibi bir kod oluşturdum fakat yine bir hata alıyorum ve istediğim olay çalışmıyor malesef.

    private void button3_Click(object sender, EventArgs e)
            {
     
                SqlCommand komut = new SqlCommand("SELECT COUNT(GrsGuc) FROM ConfigTable", baglan);
                komut.Connection = baglan;
                baglan.Open();
                SqlDataReader oku = komut.ExecuteReader();
                oku = komut.ExecuteReader();
                
                while (oku.Read())
                {
                    panel1.Controls.Clear();
                    for (int i = 1; i <= oku; i++)
                    {
                        RadioButton rbutton = new RadioButton { Text = "RadiButton" + i.ToString() };
                        panel1.Controls.Add(rbutton);
                    }
    
                }
                oku.Close();
                baglan.Close();
          
            }
    Exceptionu paylaşır mısınız hocam hatayı bi görelim