C# veri tabanındaki veriler kadar buton oluşturma

Toramanderler
04-07-2019, 13:01   |  #1  
Toramanderler avatarı
OP Taze Üye
Teşekkür Sayısı: 0
1 mesaj
Kayıt Tarihi:Kayıt: Tem 2019

Öncelikle selamın aleyküm geçen seneye kadar C# form uygulamasıyla ilgileniyordum prof olmasamda temel kavramları gerektiğinden iyi biliyordum ama staj yaptığım yer sağolsun programlamaya karşı beni biraz soğottu üzerinde çalıştığım bakkal otomasyonunu onlara gösterdikten sonra uğraşman güzel ama ileriye yönelik çok hataların var dediler ve programı sildirttiler dahada hiç birşey öğretmediler 1 sene ardından dükkanıma kendi emeğimle bir uygulama geliştirmek istedim ve aklımda bir tasarım ve algoritma oluşturdum fakat nereden başlıcağmı bilemiyorum yardımcı olabilecek varmı ? 

asıl sorum şu veri tabanımdaki satır sayısında buton oluşturmak ve satırdaki verileri butonların textine yazdırmak istiyorum nasıl yapabilirim veya nereden başlamalıyım kaynak bir bilgi varmı ?

errorno
20-07-2019, 14:35   |  #2  
Taze Üye
Teşekkür Sayısı: 1
16 mesaj
Kayıt Tarihi:Kayıt: Ara 2017

Aleykümselam,

işinize karışmak istemem ama ilk olarak buton'un kullanım amacı bu şekilde değil.
Tabii ki istediğiniz kadar buton oluşturun bu sizin kararınız.

Eğer veri tabanınızdaki verileri listelemek veya seçenekler oluşturup bu seçenekleri de
programınızı kullanan kullanıcıya sunmak istiyorsanız, doğru yol alternatifleri arasında;
DataGrid, DataView, List, ComboBox vs ve daha fazlası gibi kontrolleri kullanmanızı öneririm.
Yani çok sayıda buton kullanmanız için güçlü bir sebebiniz olmalı.

İkinci olarak iş yerinizin sizin gibi programlamaya istekli birine karşı olan davranışları ve
sizin eğitiminize önem vermemesi de doğal. Çünkü güzelim memleketimizde her diplomayı alıp bir
iş yerinde koltuk kapan kendini bu işi en iyi bilen zannediyor. Yazık.. Kendilerinin ne halde
olduklarını bir bilseler, size böyle davranmazlardı belkide.

Gelelim projenize. Profesyonel olarak bir projenizi ileriye yönelik olarak inşa etmek ve altyapısını
optimal problemlere karşı hazırlıklı tutmak istiyorsanız, kullanmanız gereken başlıca altyapı
adı : Tasarım Desenleri'dir. Tasarım desenleri problemlerin çözümlerine uygulanabilecek/uygulanmış
ve sonuç alınmış neredeyse en iyi altyapı dizaynıdır.

Ardından mimariye bakın lütfen. Yazılım mimarileri ve Tasarım Desenleri büyük veya küçük firmalarda
uzman kişilerin kullandığı ve daha da geliştirdiği objelerdir. Obje diyorum çünkü profesyonel yazılımcılar
yazılan programları daha sonra bir obje olarak kullanabilecek şekilde geliştirirler. Tabii ki bu projenin
yapısına bağlı olmak kaydı ile.

1) Tasarım Desenleri
2) Yazılım Mimarileri. Temel olarak, 2 ya da 3 katmanlı (ingilizce Tier ya da Layer olarak bulabilirsiniz)
mimariler ya da 4 katmanlı mimarilere bakınız. Unutmayın, bu mimariler büyük projeleri kapsamaktadır.

Diyelim ki bir Ms SQL veri tabanım var ve bu veri tabanıma ait bir önceden hazırladığım bir prosedürüm var.
Ve prosedürüm aşağıdaki sorguyu içeriyor.

select count(CategoryID) from Categories

ve aşağıda Form1'in ardına yazılan kodlar.

public Form1()
        {
            InitializeComponent();

            SqlConnection con = null;
            SqlCommand cmd = null;
            SqlTransaction transaction = null;

            try
            {
                using (con = new SqlConnection("conneciton string.."))
                {
                    using (cmd = new SqlCommand("prosedür ismi", con, transaction))
                    {
                        cmd.CommandType = CommandType.StoredProcedure;

                        con.Open();
                        transaction = con.BeginTransaction();
                        cmd.Transaction = transaction;

                        //SqlReader ya da ExecuteScalar ile geri dönen değerleri alma.
                    }
                }
            }
            catch (Exception xErr)
            {
                try
                {
                    if (transaction != null)
                    {
                        transaction.Rollback();
                        transaction.Dispose();
                    }
                    //exception & transaction level log..
                }
                catch (Exception xInErr)
                {
                    //exception log..
                }
                finally
                {
                    transaction = null;
                    //exception log..
                }
            }
        }


Burada satır sayısı alınıyor prosedür vasıtasıyla. Ardından yapmak istediğiniz işleme göre yine
bir prosedür ile ilgili veriler çekilir ve Buton oluşturup Text'ine yazma yapabilirsiniz.

Burada programınız hakkında fazla bir bilgim olmadığı için sadece mantığı vermek istedim.

NOT : Program kodlarını denemedim ama sadece mantık verme açısından şu anda yeterli olduğunu
düşünüyorum.