Gewusst wie: Aufrufen einer gespeicherten Prozedur mithilfe von LINQ (Visual Basic)
Language-Integrated Query (LINQ) erleichtert den Zugriff auf Datenbankinformationen, einschließlich Datenbankobjekten wie gespeicherten Prozeduren.
Das folgende Beispiel zeigt, wie Sie eine Anwendung erstellen, die eine gespeicherte Prozedur in einer SQL Server-Datenbank aufruft. Das Beispiel zeigt, wie zwei verschiedene gespeicherte Prozeduren in der Datenbank aufgerufen werden. Jede Prozedur gibt die Ergebnisse einer Abfrage zurück. Eine Prozedur übernimmt Eingabeparameter, die andere Prozedur keine Parameter.
In den Beispielen in diesem Thema wird die Northwind-Beispieldatenbank verwendet. Befindet sich diese Datenbank nicht auf Ihrem Entwicklungscomputer, können Sie sie aus dem Microsoft Download Center herunterladen. Anweisungen hierzu finden Sie unter Herunterladen von Beispieldatenbanken.
Hinweis
Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Personalisieren der IDE.
So stellen Sie eine Verbindung mit einer Datenbank her
Öffnen Sie in Visual Studio Server-Explorer/Datenbank-Explorer, indem Sie im Menü Ansicht auf Server-Explorer/Datenbank-Explorer klicken.
Klicken Sie in Server-Explorer/Datenbank-Explorer mit der rechten Maustaste auf Datenverbindungen, und wählen Sie dann Verbindung hinzufügen aus.
Geben Sie eine gültige Verbindung mit der Northwind-Beispieldatenbank 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 Objektvorlage LINQ to SQL-Klassen.
Nennen Sie die Datei
northwind.dbml
. Klicken Sie auf Hinzufügen. Der Objektrelationale Designer (O/R-Designer) wird für die Datei „northwind.dbml“ geöffnet.
Hinzufügen gespeicherter Prozeduren zu O/R-Designer
Erweitern Sie in Server Explorer/Database Explorer die Verbindung mit der Northwind-Datenbank. Erweitern Sie den Ordner Gespeicherte Prozeduren .
Wenn Sie den O/R-Designer geschlossen haben, können Sie ihn erneut öffnen, indem Sie auf die Datei „northwind.dbml“ doppelklicken, die Sie zuvor hinzugefügt haben.
Klicken Sie auf die gespeicherte Prozedur Umsatz nach Jahr und ziehen Sie sie in den rechten Bereich des Designers. Klicken Sie auf die gespeicherte Prozedur Zehn teuerste Produkte und ziehen Sie sie in den rechten Bereich des Designers.
Speichern Sie Ihre Änderungen und schließen Sie den Designer.
Speichern Sie das Projekt.
Hinzufügen von Code zum Anzeigen der Ergebnisse der gespeicherten Prozeduren
Ziehen Sie aus der Toolbox ein DataGridView-Steuerelement auf das Standard-Windows-Formular „Form1“ Ihres Projekts.
Doppelklicken Sie auf „Form1“, um dem
Load
-Ereignis Code hinzuzufügen.Wenn Sie dem O/R-Designer gespeicherte Prozeduren hinzugefügt haben, hat der Designer ein DataContext-Objekt für Ihr Projekt hinzugefügt. Dieses Objekt enthält den Code, den Sie für den Zugriff auf diese Prozeduren benötigen. Das DataContext-Objekt für das Projekt wird auf Basis des Namens der DBML-Datei benannt. Für dieses Projekt hat das DataContext-Objekt den Namen
northwindDataContext
.Sie können eine Instanz von DataContext in Ihrem Code erstellen und die vom O/R-Designer angegebenen Methoden der gespeicherten Prozedur aufrufen. Zum Binden an das DataGridView-Objekt müssen Sie möglicherweise erzwingen, dass die Abfrage sofort ausgeführt wird, indem Sie die ToList-Methode für die Ergebnisse der gespeicherten Prozedur aufrufen.
Fügen Sie dem
Load
-Ereignis den folgenden Code hinzu, um eine der gespeicherten Prozeduren aufzurufen, die als Methoden für Ihren Datenkontext verfügbar gemacht werden.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 ihr Projekt auszuführen und die Ergebnisse anzuzeigen.