ADO.NET-Codebeispiele

Aktualisiert: November 2007

In den Codebeispielen dieses Abschnitts wird veranschaulicht, wie Daten mithilfe der folgenden ADO.NET-Technologien aus einer Datenbank abgerufen werden:

  • ADO.NET-Datenanbieter:

    • .NET Framework Data Provider for SQL Server (System.Data.SqlClient)

    • .NET Framework Data Provider for OLE DB (System.Data.OleDb)

    • .NET Framework Data Provider for ODBC (System.Data.Odbc)

    • .NET Framework Data Provider for Oracle (System.Data.OracleClient)

  • ADO.NET Entity Framework:

    • LINQ to Entities

    • Typed ObjectQuery

    • EntityClient data provider (System.Data.EntityClient)

  • LINQ to SQL

Beispiele für ADO.NET-Datenanbieter

In den folgenden Codebeispielen wird veranschaulicht, wie Daten mithilfe von ADO.NET-Datenanbietern von einer Datenbank abgerufen werden. Die Daten werden in einem DataReader zurückgegeben. Weitere Informationen finden Sie unter Abrufen von Daten mit einem 'DataReader' (ADO.NET).

SqlClient

In diesem Codebeispiel wird davon ausgegangen, dass eine Verbindung mit der Northwind-Beispieldatenbank in Microsoft SQL Server 7.0 oder höher hergestellt werden kann. Der Code erstellet einen SqlCommand, um in der Produkttabelle Zeilen auszuwählen. Durch das Hinzufügen eines SqlParameter werden die Ergebnisse auf Zeilen beschränkt, deren UnitPrice höher als der festgelegte Parameterwert ist, in diesem Fall 5. Die SqlConnection wird innerhalb eines using-Blocks geöffnet. Damit wird sicher gestellt, dass Ressourcen geschlossen und verworfen werden, wenn der Code beendet ist. Der Befehl wird mithilfe eines SqlDataReader ausgeführt, und die Ergebnisse werden im Konsolenfenster angezeigt.

Option Explicit On
Option Strict On

Imports System
Imports System.Data
Imports System.Data.SqlClient

Public Class Program
    Public Shared Sub Main()

        Dim connectionString As String = GetConnectionString()
        Dim queryString As String = _
         "SELECT CategoryID, CategoryName FROM dbo.Categories;"

        Using connection As New SqlConnection(connectionString)
            Dim command As SqlCommand = connection.CreateCommand()
            command.CommandText = queryString
            Try
                connection.Open()
                Dim dataReader As SqlDataReader = _
                 command.ExecuteReader()
                Do While dataReader.Read()
                    Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", _
                     dataReader(0), dataReader(1))
                Loop
                dataReader.Close()

            Catch ex As Exception
                Console.WriteLine(ex.Message)
            End Try
        End Using
    End Sub

    Private Shared Function GetConnectionString() As String
        ' To avoid storing the connection string in your code,  
        ' you can retrieve it from a configuration file.
        Return "Data Source=(local);Initial Catalog=Northwind;" _
           & "Integrated Security=SSPI;"
    End Function
End Class
using System;
using System.Data;
using System.Data.SqlClient;

class Program
{
    static void Main()
    {
        string connectionString = GetConnectionString();
        string queryString = 
            "SELECT CategoryID, CategoryName FROM dbo.Categories;";
        using (SqlConnection connection = 
                   new SqlConnection(connectionString))
        {
            SqlCommand command = connection.CreateCommand();
            command.CommandText = queryString;

            try
            {
                connection.Open();

                SqlDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    Console.WriteLine("\t{0}\t{1}",
                        reader[0], reader[1]);
                }
                reader.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
    }

    static private string GetConnectionString()
    {
        // To avoid storing the connection string in your code, 
        // you can retrieve it from a configuration file.
        return "Data Source=(local);Initial Catalog=Northwind;"
            + "Integrated Security=SSPI";
    }
}

[Top]

OleDb

Im Code dieses Beispiels wird davon ausgegangen, dass eine Verbindung mit der Beispieldatenbank Microsoft Access Northwind hergestellt werden kann. Es wird ein OleDbCommand erstellt, um in der Produkttabelle Zeilen auszuwählen. Durch Hinzufügen eines OleDbParameter werden die Ergebnisse auf Zeilen beschränkt, deren UnitPrice höher als der festgelegte Parameterwert ist, in diesem Fall 5. Die OleDbConnection wird innerhalb eines using-Blocks geöffnet. Damit wird sicher gestellt, dass Ressourcen geschlossen und verworfen werden, wenn der Code beendet ist. Der Befehl wird mithilfe eines OleDbDataReader ausgeführt, und die Ergebnisse werden im Konsolenfenster angezeigt.

Option Explicit On
Option Strict On

Imports System
Imports System.Data
Imports System.Data.OleDb

Public Class Program
    Public Shared Sub Main()

        Dim connectionString As String = GetConnectionString()
        Dim queryString As String = _
            "SELECT CategoryID, CategoryName FROM Categories;"

        Using connection As New OleDbConnection(connectionString)
            Dim command As OleDbCommand = connection.CreateCommand()
            command.CommandText = queryString
            Try
                connection.Open()
                Dim dataReader As OleDbDataReader = _
                 command.ExecuteReader()
                Do While dataReader.Read()
                    Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", _
                     dataReader(0), dataReader(1))
                Loop
                dataReader.Close()

            Catch ex As Exception
                Console.WriteLine(ex.Message)
            End Try
        End Using
    End Sub

    Private Shared Function GetConnectionString() As String
        ' To avoid storing the connection string in your code,  
        ' you can retrieve it from a configuration file.
        ' Assumes Northwind.mdb is located in c:\Data folder.
        Return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
           & "c:\Data\Northwind.mdb;User Id=admin;Password=;"
    End Function
End Class
using System;
using System.Data;
using System.Data.OleDb;

class Program
{
    static void Main()
    {
        string connectionString = GetConnectionString();
        string queryString =
            "SELECT CategoryID, CategoryName FROM Categories;";
        using (OleDbConnection connection =
                   new OleDbConnection(connectionString))
        {
            OleDbCommand command = connection.CreateCommand();
            command.CommandText = queryString;

            try
            {
                connection.Open();

                OleDbDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    Console.WriteLine("\t{0}\t{1}",
                        reader[0], reader[1]);
                }
                reader.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
    }

    static private string GetConnectionString()
    {
        // To avoid storing the connection string in your code, 
        // you can retrieve it from a configuration file.
        // Assumes Northwind.mdb is located in the c:\Data folder.
        return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
            + "c:\\Data\\Northwind.mdb;User Id=admin;Password=;";
    }
}

[Top]

Odbc

Im Code dieses Beispiels wird davon ausgegangen, dass eine Verbindung mit der Beispieldatenbank Microsoft Access Northwind hergestellt werden kann. Es wird ein OdbcCommand erstellt, um in der Produkttabelle Zeilen auszuwählen. Durch Hinuzfügen eines OdbcParameter werden die Ergebnisse auf Zeilen beschränkt, deren UnitPrice höher als der festgelegte Parameterwert ist, in diesem Fall 5. Die OdbcConnection wird innerhalb eines using-Blocks geöffnet. Damit wird sicher gestellt, dass Ressourcen geschlossen und verworfen werden, wenn der Code beendet ist. Der Befehl wird mithilfe eines OdbcDataReader ausgeführt, und die Ergebnisse werden im Konsolenfenster angezeigt.

Option Explicit On
Option Strict On

Imports System
Imports System.Data
Imports System.Data.Odbc

Public Class Program
    Public Shared Sub Main()

        Dim connectionString As String = GetConnectionString()
        Dim queryString As String = _
            "SELECT CategoryID, CategoryName FROM Categories;"

        Using connection As New OdbcConnection(connectionString)
            Dim command As OdbcCommand = connection.CreateCommand()
            command.CommandText = queryString
            Try
                connection.Open()
                Dim dataReader As OdbcDataReader = _
                 command.ExecuteReader()
                Do While dataReader.Read()
                    Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", _
                     dataReader(0), dataReader(1))
                Loop
                dataReader.Close()

            Catch ex As Exception
                Console.WriteLine(ex.Message)
            End Try
        End Using
    End Sub

    Private Shared Function GetConnectionString() As String
        ' To avoid storing the connection string in your code,  
        ' you can retrieve it from a configuration file.
        ' Assumes Northwind.mdb is located in c:\Data folder.
        Return "Driver={Microsoft Access Driver (*.mdb)};" _
           & "Dbq=c:\Data\Northwind.mdb;Uid=Admin;Pwd=;"
    End Function
End Class
using System;
using System.Data;
using System.Data.Odbc;

class Program
{
    static void Main()
    {
        string connectionString = GetConnectionString();
        string queryString =
            "SELECT CategoryID, CategoryName FROM Categories;";
        using (OdbcConnection connection =
                   new OdbcConnection(connectionString))
        {
            OdbcCommand command = connection.CreateCommand();
            command.CommandText = queryString;

            try
            {
                connection.Open();

                OdbcDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    Console.WriteLine("\t{0}\t{1}",
                        reader[0], reader[1]);
                }
                reader.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
    }

    static private string GetConnectionString()
    {
        // To avoid storing the connection string in your code, 
        // you can retrieve it from a configuration file.
        // Assumes Northwind.mdb is located in the c:\Data folder.
        return "Driver={Microsoft Access Driver (*.mdb)};"
            + "Dbq=c:\\Data\\Northwind.mdb;Uid=Admin;Pwd=;";
    }
}

[Top]

OracleClient

Der Code in diesem Beispiel setzt eine Verbindung mit DEMO.CUSTOMER auf einem Oracle-Server voraus. Es muss zudem einen Verweis auf System.Data.OracleClient.dll hinzugefügt werden. Die Daten werden in einem OracleDataReader zurückgegeben.

Option Explicit On
Option Strict On

Imports System
Imports System.Data
Imports System.Data.OracleClient

Public Class Program
    Public Shared Sub Main()

        Dim connectionString As String = GetConnectionString()
        Dim queryString As String = _
            "SELECT CUSTOMER_ID, NAME FROM DEMO.CUSTOMER"

        Using connection As New OracleConnection(connectionString)
            Dim command As OracleCommand = connection.CreateCommand()
            command.CommandText = queryString
            Try
                connection.Open()
                Dim dataReader As OracleDataReader = _
                 command.ExecuteReader()
                Do While dataReader.Read()
                    Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", _
                     dataReader(0), dataReader(1))
                Loop
                dataReader.Close()

            Catch ex As Exception
                Console.WriteLine(ex.Message)
            End Try
        End Using
    End Sub

    Private Shared Function GetConnectionString() As String
        ' To avoid storing the connection string in your code,  
        ' you can retrieve it from a configuration file.
        Return "Data Source=ThisOracleServer;Integrated Security=yes;"
    End Function
End Class
using System;
using System.Data;
using System.Data.OracleClient;

class Program
{
    static void Main()
    {
        string connectionString = GetConnectionString();
        string queryString =
            "SELECT CUSTOMER_ID, NAME FROM DEMO.CUSTOMER";
        using (OracleConnection connection =
                   new OracleConnection(connectionString))
        {
            OracleCommand command = connection.CreateCommand();
            command.CommandText = queryString;

            try
            {
                connection.Open();

                OracleDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    Console.WriteLine("\t{0}\t{1}",
                        reader[0], reader[1]);
                }
                reader.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
    }

    static private string GetConnectionString()
    {
        // To avoid storing the connection string in your code, 
        // you can retrieve it from a configuration file.
        // Assumes Northwind.mdb is located in the c:\Data folder.
        return "Data Source=ThisOracleServer;Integrated Security=yes;";
    }
}

[Top]

Beispiele für Entity Framework

Die folgenden Codebeispiele veranschaulichen, wie Daten aus einer Datenquelle abgerufen werden, indem Entitäten eines EDM abgefragt werden. In diesen Beispielen wird das Northwind-Modell verwendet. Weitere Informationen finden Sie unter Introducing the Entity Framework.

LINQ to Entities

Im Code dieses Beispiels wird eine LINQ-Abfrage verwendet, um Daten als Categories-Objekte zurückzugeben, die als anonyme Typen projiziert werden, welche nur die Eigenschaften CategoryID und CategoryName enthalten. Weitere Informationen finden Sie unter LINQ to Entities Overview.

[Top]

Typisierte ObjectQuery

Im Code dieses Beispiels wird eine ObjectQuery<T> verwendet, um Daten als Categories-Objekte zurückzugeben. Weitere Informationen finden Sie unter Object Queries (Entity Framework).

[Top]

EntityClient

Im Code dieses Beispiels wird ein EntityCommand verwendet, um eine Entity SQL-Abfrage auszuführen. Diese Abfrage gibt eine Liste von Datensätzen zurück, die Instanzen des Categories-Entitätstyps darstellen. Ein EntityDataReader wird verwendet, um auf Datensätze im Resultset zuzugreifen. Weitere Informationen finden Sie unter EntityClient Provider for Entity Framework.

[Top]

LINQ to SQL

Im Code dieses Beispiels wird eine LINQ-Abfrage verwendet, um Daten als Categories-Objekte zurückzugeben, die als anonyme Typen projiziert werden, welche nur die Eigenschaften CategoryID und CategoryName enthalten. Dieses Beispiel basiert auf dem Northwind-Datenkontext. Weitere Informationen finden Sie unter Erste Schritte (LINQ to SQL).

[Top]

Siehe auch

Weitere Ressourcen

Übersicht über ADO.NET

Abrufen und Ändern von Daten in ADO.NET

Erstellen von Clientdatenanwendungen

Querying an Entity Data Model (Entity Framework Tasks)

How to: Execute a Query that Returns an Anonymous Type (Entity Framework)