Select-Abfrage für Datenbank in C#

Muhammad Husnain 12 Oktober 2023
  1. Was ist eine Datenbank
  2. Datenbankanbindung in C#
Select-Abfrage für Datenbank in C#

Dieser Artikel führt durch das Einrichten einer Datenbankverbindung mit der C#-Anwendung und das Abrufen von Daten aus verschiedenen Tabellen mithilfe der SELECT-Abfrage aus der Datenbank.

Was ist eine Datenbank

Eine Datenbank ist nicht nur eine tabellarische Sammlung von Daten, sondern viel mehr. Es stellt Daten in einer organisierten Struktur mit geeigneten Namenskonventionen und Beziehungen zu anderen Tabellen dar.

Das Datenbankverwaltungssystem stellt auch eine Sprache zur Interaktion mit der Datenbank (z. B. SQL) bereit, die der englischen Sprache sehr nahe kommt und somit für den Benutzer sehr leicht verständlich ist. Es bietet uns auch Datensicherheits- und Optimierungsschemata, um die Leistung von Datenoperationen zu steigern.

Datenbankanbindung in C#

Normalerweise verwenden die Programmierer Datenbanken, um die Daten ihrer Anwendungen zu speichern. Die C#-Sprache bietet Datenbankprogrammierung mit Oracle-Datenbank und Microsoft SQL Server-Datenbank.

C# kann auch mit vielen anderen Datenbanken zusammenarbeiten, aber die beiden oben genannten sind die gebräuchlichsten und am weitesten verbreiteten. Unabhängig von Ihrer Datenbank ist die Logik hinter jeder Datenbank ziemlich gleich.

In diesem Artikel wird die SQL Server-Datenbank zum Ausführen von Vorgängen verwendet. Der für Datenbankoperationen erforderliche namespace ist System.data.SqlClient.

Es enthält alle Klassen, die während der Datenbankverbindung und -operationen benötigt werden.

Erstellen einer Datenbank in SQL Server

Der erste Schritt besteht darin, eine Datenbank zu erstellen, mit der Sie innerhalb von SQL Server interagieren müssen. Diese Datenbank wird mit der folgenden Abfrage erstellt.

create database mydb;

use mydb;

CREATE TABLE Student(
    studentID varchar(20) NOT NULL PRIMARY KEY,
    stuentName varchar(60) NOT NULL
);

insert into Student values("BS01", 'David');
insert into Student values("BS02", 'John');

Nachdem Sie diese Abfragen ausgeführt haben, wird eine Datenbank mit der Tabelle Student erstellt, die 2 Zeilen enthält.

Herstellen einer Verbindung mit der Datenbank in C#

Für die Interaktion mit einer Datenbank benötigen Sie einige Parameter. Diese Parameter werden kombiniert, um eine Verbindungszeichenfolge zu bilden.

  1. Name der Datenbank – Sie müssen den Namen der Datenbank angeben, aus der Sie die Daten lesen müssen. Es wird empfohlen, jeweils nur eine Datenbank zu verwenden.
  2. Datenbankanmeldeinformationen – Es gibt immer einen Benutzernamen und ein Passwort für die Interaktion mit einer Datenbank, also müssen Sie diesen autorisierten Benutzernamen und das Passwort angeben.
  3. Einige optionale Parameter – Sie können auch einige optionale Parameter angeben. Sie können beispielsweise einen Timeout-Wert festlegen, dass die Verbindung geschlossen werden soll, wenn die Datenbank für einen bestimmten Zeitraum inaktiv bleibt.

Schauen wir uns den Beispielcode an, in dem wir eine Verbindung mit der Datenbank herstellen. Angenommen, der Benutzername der Datenbank ist usr und das Passwort usr123.

SqlConnection conn;
string connectString =
    @"Data Source=DESKTOP-FQ8R559;Initial Catalog=mydb;User ID=usr;Password=usr123";

conn = new SqlConnection(connectString);
conn.Open();
Console.WriteLine("Connection Established");

Daten aus der Datenbank lesen

Wir benötigen die Klasse SqlCommand und SqlDataReader zum Lesen von Daten aus der Datenbank. Die Klasse SqlCommand wird verwendet, um den Befehl auf der Datenbank auszuführen.

Das Ausführen des Select-Befehls erzeugt ein Resultset. Dieses Resultset kann mit der Klasse SqlDataReader gelesen werden.

Schauen wir uns den folgenden Code an.

SqlCommand cmd;
SqlDataReader dataReader;
string sql = "Select * from Student";
cmd = new SqlCommand(sql, conn);
dataReader = cmd.ExecuteReader();
Console.WriteLine("Data from the Database..");
while (dataReader.Read()) {
  Console.WriteLine(dataReader.GetValue(0) + " || " + dataReader.GetValue(1));
}
dataReader.close();
conn.close();

In diesem Code-Snippet haben wir zuerst ein SqlCommand-Objekt erstellt und eine Abfrage erstellt, die wir für die Ausführung in der Datenbank benötigen. Dann wird diese Anfrage an das Objekt cmd und das Verbindungsobjekt conn gesendet.

Um die Abfrage auszuführen, verwenden wir die Funktion ExecuteReader(), die ein Resultset zurückgibt, das die in der Abfrage erfassten Daten enthält. Dieses ResultSet kann mit dem SqlDataReader-Objekt gelesen werden, das die Daten in der Schleife Zeile für Zeile liest.

Am Ende müssen wir die Lese- und Verbindungsobjekte schließen, damit sie für die weitere Verwendung freigegeben werden können.

Die Ausgabe des obigen Codes lautet:

Connection Established.
Data from the Database..
BS01 || David
BS02 || John

Beachten Sie, dass wir die Funktion ExecuteReader() zum Ausführen der Abfrage Select verwendet haben. Um mehr Arten von Abfragen auszuführen, benötigen wir unterschiedliche Methoden.

Einige der beliebtesten Reader für Abfrageergebnisse sind:

Funktionsname Beschreibung
ExecuteReader() Funktion zum Ausführen von Abfragen, die Daten in Tabellenform zurückgeben können.
ExecuteNonQuery() Funktion zum Ausführen von DML-Abfragen in der Datenbank wie insert, update etc.
ExeuteScalar() Funktion für Abfragen, die einen einzelnen Wert zurückgeben, wie z. B. count
Muhammad Husnain avatar Muhammad Husnain avatar

Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.

LinkedIn

Verwandter Artikel - Csharp SQL