-
ACHTUNG - NEUES BLOG
Ab sofort steht unter http://devtyr.norberteder.com mein neues Blog zur Verfügung. Dieses Blog wird nicht weiter betreut, bleibt aber erhalten. Neue Eintr%auml;ge erfolgen nur mehr im neuen Blog. Kommentare werden ebenfalls nicht mehr behandelt. Wer weiterhin meinen Einträgen und Aktivitäten folgen möchte, möge bitte RSS-Feeds, Verlinkungen etc. an die neue Location anpassen.
|
Zurück vom SQL Server 2005 Development Summit
14.04.06 - SQL Server Beitrag von Norbert Eder
C# vs. VB.NET
08.04.06 - Base Framework Beitrag von Norbert Eder
[Tutorial] C# und SQL Server 2005
08.04.06 - .NET, Datenverwaltung Beitrag von Norbert Eder| | Immer wieder stoße ich auf Anfragen, wie denn genau eine Anbindung an den SQL Server 2005 mit C# (oder VB.NET) funktioniert. Grundsätzlich gibt es dazu zahlreiche Tutorials im Internet, die meisten jedoch auf Englisch. Diese Tatsache scheint dann doch sehr viele abzuschrecken. Daher habe ich mich entschlossen, ein Tutorial zu diesem Thema zu verfassen, um eine entsprechende deutschsprachige Ressource bereitstellen zu können.
Inhalt
1. Einführung
2. Verbindung herstellen
3. Daten abfragen
4. Daten hinzufügen
5. Zusammenfassung
1. Einführung
Für den Zugriff auf den SQL Server (2000 oder 2005 ist hierbei unerheblich) werden vom .NET Framework alle notwendigen Funktionen zur Verfügung gestellt. Diese verstecken sich im Namespace System.Data.SqlClient. Für den SQL Server könnten zwar auch die Klassen aus dem Namespace System.Data.OleDb verwendet werden, jedoch ist der DataProvider unter SqlClient auf den SQL Server optimiert und sollte (ausser andere triftige Gründe sprechen dagegen) verwendet werden.
2. Verbindung herstellen
Nun, starten wir damit, eine Verbindung zum SQL Server herzustellen. Dazu verwenden wir die Klasse SqlConnection aus dem oben angegebenen Namespace. Der KLasse SqlConnection muss ein ConnectionString übergeben werden. Dieser definiert wo der SQL Server zu finden ist, welche Datenbank verwendet werden soll und wie die User-Informationen lauten. Beispielsweise würde ein ConnectionString wie folgt aussehen:
Data Source=Aron1;Initial Catalog=pubs;User Id=sa;Password=asdasd;
Die Data Source stellt den Computer dar, auf dem der SQL Server läuft. Zu achten ist hierbei, dass der SQL Server 2005 mit einem Instanznamen angelegt wird, welcher im ConnectionString entsprechend anzugeben ist, da eine Verbindung sonst nicht aufgebaut werden kann. Die Einstellung Initial Catalog beschreibt den Namen der Datenbank auf welche verbunden werden soll. User Id ist der zu verwendende Username und Password sollte selbstsprechend sein. Weitere Informationen zu den ConnectionStrings sind unter [1] zu finden.
In C# sieht ein Verbindungsaufbau nun wie folgt aus:
SqlConnection conn = new SqlConnection(@"Data Source=COMPUTERNAMESQLEXPRESS;Initial Catalog=DatabaseDemo;User Id=sa;Password=MyPassword;");
conn.Open();
conn.Close();
In diesem Fall ist ein SQL Server 2005 Express installiert. COMPUTERNAME stellt den Namen des Computers dar und SQLEXPRESS ist der Instanzname des SQL Servers. Dieser Name wird im Normalfall bei der Installation eingegeben. Ist nicht sicher wie dieser lautet, dann kann dies in der Dienste-Liste ausgelesen werden. Dazu einfach die Dienste anzeigen lassen, den SQL Server Dienst suchen, in Klammer dahinter steht der entsprechende Instanzname.
Durch den obigen C# Code kann man sich nun zur Datenbank verbinden. Für das Öffnen der Verbindung ist die Methode Open() zu verwenden. Close() sorgt für das Schließen der Verbindung.
3. Daten abfragen
Da wir nun eine Verbindung aufbauen können, erfolgt der nächste Schritt: Daten abzufragen. Hierfür werden die Klassen SqlCommand und SqlDataReader verwendet.
Folgender Code übernimmt das für uns:
SqlCommand com = new SqlCommand("SELECT * FROM tPerson", conn);
SqlDataReader reader = com.ExecuteReader();
while (reader.Read())
{
Console.WriteLine("ID: {0}, Firstname: {1}, Lastname: {2}", reader[0].ToString(), reader[1].ToString(), reader[2].ToString());
}
reader.Close();
Hier passiert nun folgendes: Zuerst erstellen wir einen SqlCommand, der auf der Datenbank ausgeführt werden soll. Als Parameter übergeben wir ein SQL-Statement und die geöffnete Verbindung conn.
Danach instanzieren wir einen SqlDataReader. Dieser ist für das Auslesen der Daten zuständig. Der Befehl com.ExecuteReader() sorgt dafür, dass der Command ausgeführt wird und ein DataReader zurückgegeben wird. Mit dem DataReader kann Datensatz für Datensatz durch das Ergebnis iteriert werden, was wir auch mit Hilfe der while-Schleife tun. Nachdem die Daten bezogen wurden, ist der DataReader wieder zu schließen. Darin geben wir die Daten lediglich auf der Console aus. Die Aussgabe würde wie folgt aussehen:
ID: 1, Firstname: Norbert, Lastname: Eder
ID: 2, Firstname: Test, Lastname: Person
ID: 3, Firstname: Franz, Lastname: Nachname
Es empfiehlt sich, auch die weiteren Möglichkeiten der Klasse SqlCommand im MSDN [2] nachzuschlagen, da viele weitere Funktionen zur Verfügung stehen. Alle zu beschreiben würde jedoch den Umfang dieses Tutorials sprengen.
4. Daten hinzufügen
Da wir nun eine der Möglichkeiten gesehen haben wie Daten abgefragt werden können, werden wir nun einen Datensatz hinzufügen. Dies passiert wie folgt:
SqlCommand com = new SqlCommand("INSERT INTO tPerson (Firstname, Lastname) VALUES (@firstname, @lastname)", conn);
com.Parameters.Add(new SqlParameter("@firstname", "fritz"));
com.Parameters.Add(new SqlParameter("@lastname", "huber"));
com.ExecuteNonQuery();
Wieder erstellen wir einen SqlCommand, der ein SQL Statement übergeben bekommt sowie die Datenbankverbindung. Hier passiert dann noch etwas spezielles. Aus Sicherheitsgründen werden die Daten nicht direkt ins SQL Statement geschrieben, sondern via SqlParameter. Dieser Schritt hat einige Vorteile was das Thema SQL Injection etc. betrifft. Sollte also immer in dieser Form angewandt werden. Mittels der ExecuteNonQuery-Methode des SqlCommand-Objektes wird der Befehl auf der Datenbank ausgeführt und der Datensatz eingefügt.
4. Zusammenfassung
Dies war ein kurzer Einblick in die Datenbank-Thematik unter C#. Alle Klassen und Methoden können auf die gleiche Art und Weise unter VB.NET verwendet werden. Es empfielt sich, die angegebenen Klassen im MSDN genauer anzusehen, sowie auch die vorhandenen Beispiele zu den einzelnen Methoden durchzuarbeiten. Danach sollte dieses Thema kein Problem mehr darstellen.
[1] http://www.connectionstrings.com
[2] http://msdn2.microsoft.com oder http://msdn.microsoft.com
| | | Kommentar hinzufügen
| 0 Trackbacks
| Permalink | Trackback-URL |
Microsoft's Port 25 und eindeutige Kommentare
07.04.06 - Kunterbunt Beitrag von Norbert Eder
[Privat] Endlich ist es soweit
07.04.06 - Kunterbunt Beitrag von Norbert Eder| | Heute habe ich meine Diplomarbeit eingereicht und bin endlich einen großen Brocken der letzten Zeit los. Endlich ist dieses Thema mehr oder weniger abzuschließen. Da kommt Freude auf! Das Thema stammt natürlich aus der .NET Welt. Wie zu vermuten ;-)
| | | 3 Kommentare
- 855 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL |
Microsoft Virtual Server 2005 R2 kostenlos erhältlich
04.04.06 - 3rd Party Tools Beitrag von Norbert Eder
TestDriven.NET-2.0.1577 available
04.04.06 - 3rd Party Tools Beitrag von Norbert Eder
Design Patterns: Die Geschichte
28.03.06 - Patterns Beitrag von Norbert Eder| | Unter Was sind Design Patterns wurde der Begriff Design Pattern bereits definiert und auch die unterschiedlichen Arten wurden angeführt.
In diesem Beitrag wird auf die Geschichte der Design Patterns eingegangen.
Bereits in den 1970er Jahren wurde die erste Sammlung von Entwurfsmustern erstellt - allerdings von einem Architekten namens Christopher Alexander. Die Idee dahinter hat sich seitdem nicht verändert. Nur fand seine Sammlung wenig Anklang unter anderen Architekten, in der Softwareentwicklung wurde die Idee jedoch bald darauf aufgegriffen und erfreut sich großer Beliebtheit. Ende der 1980er wurde die Sammlung von Chritopher Alexander von Kent Beck und Ward Cunningham aufgegriffen und entwickelten auf deren Basis Entwurfsmuster für grafische Benutzerschnittstellen.
Eine neue Ära begann dann mit Erich Gamma. Nach seiner Promotion an der Universität Zürich, 1991, ging er in die USA und verfasste zusammen mit Richard Helm, Ralph Johnson und John Vlissides das Buch Design Patterns - Elements of Reusable Object-Oriented Software. In diesem Buch wurden 23 Design Patterns beschrieben. Dies verhalf den Entwurfsmustern zum Durchbruch. Die vier Autoren sind gemeinhin auch unter Gang of Four (GoF) bekannt.
Zur Übersichtlichkeit verwendete die GoF ein einheitliches Schema um die Design Patterns zu beschreiben. Nachfolgend eine kurze Übersicht:
- Mustername und Klassifikation
- Zweck
- Synonyme
- Motivation
- Anwendbarkeit
- Struktur
- Beteiligte Klassen (Akteure)
- Zusammenspiel der involvierten Klassen
- Vor- und Nachteile
- Implementierung
- Beispielcode
- Praxiseinsatz
- Querverweise
Anhand dieses Schemas konnte ausreichend Information zum entsprechenden Design Pattern geliefert werden (Wann ist es einsetzbar, etc.).
| | | Kommentar hinzufügen
| 1 Trackbacks
| Permalink | Trackback-URL |
How to Remove Linux and Install Windows XP
25.03.06 - Internet Beitrag von Norbert Eder
Tool: Outlookmaster
23.03.06 - OutlookMaster Beitrag von Norbert Eder| | Da ich Microsoft Outlook intensiv verwende, es aber nicht ständig geöffnet haben will (Ressourcen, die ich fürs Programmieren benötige), habe ich mir gestern ein kleines Tool gebaut, welches Zugang zu einigen Outlook-Funktionen per Traybar anbietet.
Es fehlt zwar noch eine MailChecker-Funktionalität, aber leistet zumindest mir recht gute Dienste. Daher möchte ich das Tool potentiellen Usern nicht vorenthalten und habe es online gestellt.
Zu finden ist das Tool auf der Projektseite zu Outlookmaster.
Anregungen etc. nehme ich natürlich entgegen, unter Verwendung der Kontaktseite.
| | | 2 Kommentare
- 1398 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL | Zurück Weiter
|
|
|
|
|
|
|