Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vorschlag für eine Verbesserung. #1

Open
TSC-Home opened this issue Aug 8, 2023 · 0 comments
Open

Vorschlag für eine Verbesserung. #1

TSC-Home opened this issue Aug 8, 2023 · 0 comments

Comments

@TSC-Home
Copy link

TSC-Home commented Aug 8, 2023

// Improved Code: Retrieve Data from SQL Server with Clean Structure and Error Handling
using System;
using System.Data.SqlClient;

internal class Program
{
    private static void Main(string[] args)
    {
        // Connection string for the SQL database
        string connectionString = @"Server=localhost;Database=master;Trusted_Connection=True;";

        try
        {
            // Establish a database connection
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();
                Console.WriteLine("Connection Open!");

                // SQL query to select all data from the "Test" table
                string sqlQuery = "SELECT * FROM Test";

                // Execute the SQL command and retrieve data
                using (SqlCommand command = new SqlCommand(sqlQuery, connection))
                using (SqlDataReader dataReader = command.ExecuteReader())
                {
                    // Display the retrieved results using a separate method
                    DisplayResults(dataReader);
                }
            }
        }
        catch (Exception ex)
        {
            // Handle and display errors gracefully
            Console.WriteLine("An error occurred: " + ex.Message);
        }
    }

    // Method to display query results
    private static void DisplayResults(SqlDataReader dataReader)
    {
        while (dataReader.Read())
        {
            string rowData = "";

            // Concatenate data for each column into a single row
            for (int i = 0; i < dataReader.FieldCount; i++)
            {
                rowData += (i == 0 ? "" : " - ") + dataReader.GetValue(i);
            }

            // Display the row
            Console.WriteLine(rowData);
        }
    }
}

1. Error Handling: Die Hinzufügung des try-catch-Blocks ermöglicht es, Fehler während der Ausführung abzufangen und aussagekräftige Fehlermeldungen auszugeben. Dies erleichtert das Debugging und die Fehlerbehebung.

2. Methode zur Anzeige der Ergebnisse: Die Auslagerung der Schleife zur Anzeige der Ergebnisse in eine separate Methode (DisplayResults) erhöht die Lesbarkeit des Hauptcodes und fördert die Wiederverwendbarkeit dieser Funktionalität.

3. Konsistente Namensgebung: Die Umbenennung von Variablen in konsistente Namen verbessert die Lesbarkeit und Verständlichkeit des Codes.

4. Dokumentation durch Kommentare: Die Hinzufügung von Kommentaren erklärt, was jeder Abschnitt des Codes tut, was für Entwickler, die den Code lesen, sehr hilfreich ist.

5. Ressourcenverwaltung durch using-Anweisungen: Die Verwendung von using-Anweisungen sorgt dafür, dass die Ressourcen (wie die SqlConnection und SqlDataReader) ordnungsgemäß freigegeben werden, wenn sie nicht mehr benötigt werden.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant