-
Notifications
You must be signed in to change notification settings - Fork 0
Description
// 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.