.NET Blog   ·   .NET Casts   ·   .NET GUI Foren   ·   .NET BlogBook   ·   WPF Blogger   ·   visual studio one   ·   ASP.NET professional

  • 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.
Download .NET Essentials Installer
Trickkiste

Zurück vom SQL Server 2005 Development Summit

14.04.06 - SQL Server
Beitrag von Norbert Eder
 So, jetzt hab ich eine Woche SQL Server 2005 hinter mir. In den nächsten Tagen werde ich die eine oder andere neue Erkenntnis hier posten. Zuerst muss ich jedoch alle erhaltenen Eindrücke sammeln ...

  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


C# vs. VB.NET

08.04.06 - Base Framework
Beitrag von Norbert Eder
 Ein Thema das wohl nie enden wird. Was ist denn nun besser? C# oder VB.NET? Hier eine kleine Linksammlung zu diesem Thema, damit sich jeder selbst ein Bild davon machen kann:

[1] What are the advantages of C# over VB.NET and vice versa?
[2] VB.NET vs C#: The Great .NET Language Debate
[3] Top 10 reasons C# is better than VB.NET
[4] Complete Comparison for VB.NET and C#
[5] Yet again: VB vs C#
[6] Und VB .NET hat doch einen Sinn

Ich könnte die Liste jetzt noch weiter fortsetzen, aber ich denke diese Links sollten für eine Entscheidungsfindung reichen.
  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


[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
 Unter dem Namen Port25 bietet Microsoft Informationen aus ihrem Open Source Software Lab. Interessant ist hier vor allem der Artikel A look inside Microsoft's Open Source Software Lab, da sich hier Spammer aufgefordert fühlten, entsprechende Kommentare zu "posten". A look inside lohnt also ...

  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


[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
 Nachdem ja vor fast 2 Monaten die News vom kostenlosen VMWare Server erfolgte, darf man sich nun freuen, dass der Microsoft Virtual Server 2005 R2 ebenfalls for free zu haben ist.

Details finden sich auf Microsoft's Virtual Server Seiten.

  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


TestDriven.NET-2.0.1577 available

04.04.06 - 3rd Party Tools
Beitrag von Norbert Eder
 Ab heute ist die neueste Version von TestDriven.NET erhältlich. Diese befindet sich zwar immer noch im Beta-Stadium kann aber durchaus schon eingesetzt werden.

TestDriven.NET Downloadseite
  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


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
 ... zeigt uns Microsoft anhand eines netten Artikels. Eigentlich mische ich mich in derartige Themen ja nicht mehr ein, aber ich fand's irgendwie ganz witzig, als ich heute zufällig auf diesen Eintrag gestoßen bin.

  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


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