C# aynı kodu birden çok kullanmak

Katılım
4 Eki 2023
Mesajlar
4
Puanları
1
merhabalar arkadaşlar

c# üzerinden kod yazarken kod fazlalığını nasıl önleyebilirim ?

Ekran görüntüsü 2023-12-26 205232.png


mesela yukarda gördüğünüz satırdan bir sürü olduğunu düşünün, bunu kısaltmamın bir yolu var mı şimdiden teşekkürler
 
Evet, tekrar eden kodları azaltmanın yolu var. Öncelikle, bu tür nesneleri bir dizi içinde tutabilirsiniz. Ardından, bu nesneleri döngü içinde oluşturabilir ve kullanabilirsiniz. Bu, kodunuzu daha temiz ve daha az tekrarlı hale getirebilir.
Bu şekilde, aynı türdeki nesneleri bir dizi içinde saklayabilir ve daha az kod yazarak bu nesneleri oluşturabilirsiniz.
Örnek bir kod aşağıda:


List<SqlConnection> connections = new List<SqlConnection>();
List<SqlCommand> commands = new List<SqlCommand>();
List<SqlDataAdapter> adapters = new List<SqlDataAdapter>();
List<DataTable> tables = new List<DataTable>();


for (int i = 0; i < 3; i++)
{
SqlConnection connection = new SqlConnection();
connections.Add(connection);


SqlCommand command = new SqlCommand();
commands.Add(command);


SqlDataAdapter adapter = new SqlDataAdapter();
adapters.Add(adapter);


DataTable table = new DataTable();
tables.Add(table);
}


Yukarıdaki şekilde connections, commands, adapters ve tables listelerinde nesneleriniz var.
İhtiyacınıza göre bu listeleri kullanabilirsiniz.
 
Sadece bu 3 tablo varsa ve yönetebiliyorsanız problem olmayacaktır ancak DRY (Dont Repeat Your Self ) patern kullanılabilir.
https://medium.com/@kerimkkara/the-dry-dont-repeat-yourself-pattern-7ef2cfbdc0b9

Bu 3 tabloyu da daha anlamlı adlandırırsanız o da faydalı olacaktır bunun için de bir dbHelper oluşturup

C#:
public class DatabaseHelper
{
    private static SqlConnection CreateConnection(string connectionString)
    {
        return new SqlConnection(connectionString);
    }

    private static SqlCommand CreateCommand(SqlConnection connection)
    {
        return new SqlCommand { Connection = connection };
    }

    private static SqlDataAdapter CreateDataAdapter(SqlCommand command)
    {
        return new SqlDataAdapter { SelectCommand = command };
    }

    private static DataTable ExecuteQuery(SqlDataAdapter dataAdapter)
    {
        DataTable dataTable = new DataTable();
        dataAdapter.Fill(dataTable);
        return dataTable;
    }

    public static DataTable ExecuteQuery(string connectionString, string query)
    {
        using (SqlConnection connection = CreateConnection(connectionString))
        using (SqlCommand command = CreateCommand(connection))
        using (SqlDataAdapter dataAdapter = CreateDataAdapter(command))
        {
            connection.Open();
            command.CommandText = query;
            return ExecuteQuery(dataAdapter);
        }
    }
}

Bunu da şöyle kullanabilirsin:


C#:
DataTable myTable = DatabaseHelper.ExecuteQuery("connection_string", "SELECT * FROM your_table");

Not bu helperi ChatGPT ile hızlıca oluşturdum, çalışıp çalışmayacağından emin değilim.
 

Yeni mesajlar

Forum istatistikleri

Konular
128,207
Mesajlar
915,823
Kullanıcılar
449,987
Son üye
mavcil19

Yeni konular

Geri
Üst