Gewusst wie: Aufrufen einer gespeicherten Prozedur mithilfe von LINQ (Visual Basic)
Die sprachintegrierte Abfrage (LINQ) erleichtert den Zugriff auf Datenbankinformationen, einschließlich Datenbankobjekten wie beispielsweise gespeicherten Prozeduren.
Im folgenden Beispiel wird das Erstellen einer Anwendung dargestellt, von der eine gespeicherte Prozedur in einer SQL Server-Datenbank aufgerufen wird. Im Beispiel wird gezeigt, wie zwei verschiedene gespeicherte Prozeduren in der Datenbank aufgerufen werden. Jede Prozedur gibt die Ergebnisse einer Abfrage zurück. Von der einen Prozedur werden Eingabeparameter verwendet, von der anderen nicht.
In den Beispielen dieses Themas wird die Beispieldatenbank Northwind verwendet. Wenn die Beispieldatenbank Northwind auf dem Entwicklungscomputer nicht installiert ist, können Sie sie von der Website Microsoft Download Center herunterladen. Anweisungen dazu finden Sie unter Herunterladen von Beispieldatenbanken (LINQ to SQL).
Tipp
Ihr Computer zeigt möglicherweise für einige der Elemente der Visual Studio-Benutzeroberfläche in der folgenden Anleitung andere Namen oder Standorte an. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Visual Studio-Einstellungen.
So erstellen Sie eine Verbindung zu einer Datenbank
Öffnen Sie in Visual Studio den Server-Explorer/Datenbank-Explorer, indem Sie im Menü Ansicht auf Server-Explorer/Datenbank-Explorer klicken.
Klicken Sie im Server-Explorer/Datenbank-Explorer mit der rechten Maustaste auf Datenverbindungen und anschließend auf Verbindung hinzufügen.
Geben Sie eine gültige Verbindung zur Beispieldatenbank Northwind an.
So fügen Sie ein Projekt hinzu, das eine LINQ to SQL-Datei enthält
Zeigen Sie in Visual Studio im Menü Datei auf Neu, und klicken Sie auf Projekt. Wählen Sie Visual Basic-Windows Forms-Anwendung als Projekttyp aus.
Klicken Sie im Menü Projekt auf Neues Element hinzufügen. Wählen Sie die Elementvorlage LINQ to SQL-Klassen aus.
Nennen Sie die Datei northwind.dbml. Klicken Sie auf Hinzufügen. Der Object Relational Designer (O/R-Designer) wird für die Datei northwind.dbml geöffnet.
So fügen Sie dem O/R-Designer gespeicherte Prozeduren hinzu
Erweitern Sie im Server-Explorer/Datenbank-Explorer die Verbindung zur Datenbank Northwind. Erweitern Sie den Ordner Gespeicherten Prozeduren.
Wenn Sie den O/R-Designer geschlossen haben, können Sie ihn durch Doppelklicken auf die zuvor hinzugefügte Datei northwind.dbml erneut öffnen.
Klicken Sie auf die gespeicherte Prozedur Sales by Year, und ziehen Sie diese in den rechten Bereich des Designers. Klicken Sie auf die gespeicherte Prozedur Ten Most Expensive Products, und ziehen Sie diese in den rechten Bereich des Designers.
Speichern Sie die Änderungen, und schließen Sie den Designer.
Speichern Sie das Projekt.
So fügen Sie Code hinzu, um die Ergebnisse der gespeicherten Prozeduren anzuzeigen
Ziehen Sie aus der Toolbox ein DataGridView-Steuerelement auf das Standard-Windows Form (Form1) des Projekts.
Doppelklicken Sie auf Form1, um dem Load-Ereignis Code hinzuzufügen.
Wenn Sie dem O/R-Designer gespeicherte Prozeduren hinzugefügt haben, wurde dem Projekt vom Designer ein DataContext-Objekt hinzugefügt. Dieses Objekt enthält den Code, den Sie zum Zugriff auf diese Prozeduren benötigen. Das DataContext-Objekt für das Projekt wird auf Grundlage des Namens der DBML-Datei benannt. Für dieses Projekt lautet der Name des DataContext-Objekts northwindDataContext.
Sie können im Code eine Instanz von DataContext erstellen und die vom O/R-Designer festgelegten gespeicherten Prozeduren aufrufen. Um eine Bindung zum DataGridView-Objekt vorzunehmen, müssen Sie möglicherweise ein sofortiges Ausführen der Abfrage erzwingen, indem Sie die ToList<TSource>-Methode für die Ergebnisse der gespeicherten Prozedur aufrufen.
Fügen Sie den folgenden Code zum Load-Ereignis hinzu, um eine der gespeicherten Prozeduren aufzurufen, die als Methoden für Ihren Datenkontext verfügbar sind.
Dim db As New northwindDataContext ' Display the results of the Sales_by_Year stored procedure. DataGridView1.DataSource = db.Sales_by_Year(#1/1/1996#, #1/1/2007#).ToList() ... ' Display the results of the Ten_Most_Expensive_Products ' stored procedure. DataGridView1.DataSource = db.Ten_Most_Expensive_Products.ToList()
Drücken Sie F5, um das Projekt auszuführen und die Ergebnisse anzuzeigen.
Siehe auch
Aufgaben
Exemplarische Vorgehensweise: Erstellen von LINQ to SQL-Klassen (O/R-Designer)
Konzepte
DataContext-Methoden (O/R-Designer)