Autowert Download
Methode 1
Sie können einen AutoWert-Feldwert so zurücksetzen, dass er mit einem der Felder in der Tabelle übereinstimmt. Gehen Sie hierzu folgendermaßen vor:
1. Löschen Sie das AutoWert-Feld aus der Haupttabelle.
Notieren Sie den Namen des AutoWert-Feldes.
2. Klicken Sie im linken Fenster auf Abfragen. Doppelklicken Sie im rechten Fenster auf Erstellt eine neue Abfrage in der Entwurfsansicht.
3. Wählen Sie im Dialogfeld Tabelle anzeigen die Haupttabelle aus. Klicken Sie auf Hinzufügen, und klicken Sie anschließend auf Schließen.
4. Doppelklicken Sie in der Tabellenansicht der Haupttabelle auf die erforderlichen Felder, um sie auszuwählen.
5. Wählen Sie die Sortierreihenfolge aus.
6. Klicken Sie im Menü Abfrage auf Tabellenerstellungsabfrage. Geben Sie den neuen Tabellennamen im Textfeld Tabellenname ein, und klicken Sie auf OK.
7. Klicken Sie im Menü Abfrage auf Ausführen.
8. Es wird ein Dialogfeld mit folgendem Text angezeigt: Sie beabsichtigen, # Zeile(n) in eine neue Tabelle einzufügen. Klicken Sie auf Ja, um die Zeilen einzufügen.
9. Klicken Sie im Menü Datei auf Schließen. Klicken Sie auf Nein, um das Fenster Tabellenerstellungsabfrage zu schließen.
10. Klicken Sie im linken Fenster auf Tabellen. Klicken Sie mit der rechten Maustaste auf die neue Tabelle, und klicken Sie anschließend auf Entwurfsansicht.
11. Fügen Sie in der Ansicht Entwurf der Tabelle ein AutoWert-Feld mit dem Feldnamen hinzu, den Sie in Schritt 1 gelöscht haben. Fügen Sie dieses AutoWert-Feld zur neuen Tabelle hinzu, und speichern Sie die Tabelle.
12. Schließen Sie die Ansicht Entwurf.
13. Benennen Sie die Haupttabelle um. Geben Sie der neuen Tabelle den Namen der Haupttabelle.
LINQ to SQL ist Microsofts LINQ Provider für das Hauseigene Datenbanksystem SQL Server 2005 (und 2008 – und noch mehr?). Das Konzept von LINQ sollte man vorher bereits verstehen – hier eine Kurzeinführung:
LINQ? Was ist das?
In jeder Applikation arbeitet man mit Daten, Objekten und noch mehr Ansammlungen von Objekten. Externe Datenquellen (XML, Datenbanken) muss man über ihre jeweiligen Abfragesprachen ansprechen – SQL oder XPath. Objektcollections oder komplexe Objekte in C# 2.0 haben kein solches Abfragesystem gehabt – man musste über Foreach-Schleifen die Collections durchgehen und dann immer wieder mit dem Suchwort vergleichen.
Hier tritt LINQ ins Spiel – LINQ erlaubt es, .NET Objekte mit einem SQL ähnlichen Syntax zu durchsuchen, allerdings mit allen Vorteilen die Visual Studio und Objekte bieten: Einfaches Debugging möglich, man arbeitet mit direkten Objekten und die IntelliSense hilft natürlich auch kräftig. Am Ende einer LINQ Abfrage kann man direkt ein “var” Objekt erzeugen (was das ist, wurde hier besprochen). Da man nicht nur Objekte so durchsuchen kann, sondern auch andere Daten, zeigt z.B. der LINQ to XML oder der LINQ to SQL Provider.
Microsoft hat LINQ so gestaltet, dass viele solche Provider erstellt werden können, sodass es momentan z.B. folgene Provider in Entwicklung befinden:
- LINQ to SharePoint
- LINQ to Amazon
- LINQ to Active Directory (LDAP)
- LINQ to NHibernate
- LINQ to MySQL / Oracle / SQLite
- LINQ to Flickr
Wir beschäftigen uns heute mit LINQ to SQL – dabei werden wir einmal nur in einer sehr einfachen Abfrage LINQ to SQL anschauen und später ein etwas komplexeres Mapping per Hand vornehmen.
Der LINQ to SQL Designer wird später behandelt!
Vorbereitung & Dokumente
Ich halte mich hier an das Hand on Lab von Microsoft, welches es hier kostenlos zum Runterladen gibt. Desweiteren benötigen wir die Northwind Datenbank – eine Installationsanleitung gibt es hier. Natürlich benötigen wir Visual Studio 2008 Express Edition. Visual Studio und das SQL Management Studio sollten im Administratormodus laufen (und bei meinem Demoprojekt muss hinterher der ConnectionString angepasst werden)
Erster Schritt mit LINQ to SQL
Als erstes benötigen wir die System.Data.Linq.dll, damit wir die entsprechenden Namespaces verwenden können.
Danach erstellen wir unser erstes Mapping (wie bereits oben erwähnt, werden wir hier ein manuelles Mapping vornehmen um das System besser zu verstehen).
Schauen wir uns mal die Tabellen der Northwind Datenbank an:
Wir wollen einfach eine kleine Konsolen-Applikation haben, welche die Kundendaten bearbeitet.
LINQ to SQL – Schritt 1: Das Mapping
Die Kundendaten stehen in der “Customers” Tabelle – daher legen wir eine “Customers” Klasse an:
Dabei verwenden wir den Namespace “System.Data.Linq.Mapping” in der “Customer.cs”.
Das Mapping erfolgt über das Zuweisen von Attributen zu der Klasse (das Table Attribut) und den Properties (das Column Attribut).
Quellcode sagt meist mehr als tausend Wort: