Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

Vorgehensweise: Herstellen einer Verbindung mit einem Verbund in der Windows Azure SQL-Datenbank

In diesem Thema wird beschrieben, wie Sie in SQL-Datenbank eine Verbindung mit einem Verbund herstellen können. Allgemeine Überlegungen zum Herstellen einer Verbindung mit Datenbanken in einer SQL-Datenbank finden Sie unter Richtlinien zum Herstellen einer Verbindung mit der Windows Azure SQL-Datenbank.

Die Verbindung mit den Daten eines Verbunds wird mithilfe der USE FEDERATION (Windows Azure SQL-Datenbank)-Anweisung hergestellt. Alle Verbindungen werden zunächst mit der Datenbank hergestellt, die den Verbund (Verbundstamm) enthält. Diese leitet anschließend die Verbindung an das entsprechende Verbundmitglied weiter. Zu welchem Verbundmitglied die Verbindung weitergeleitet wird, wird anhand des Verbundschlüsselwerts ermittelt, der als Teil der USE FEDERATION-Anweisung angegeben wird.

Beispiel für eine Konsolenanwendung

Das folgende Beispiel ist eine Konsolenanwendung, über die eine Verbindung mit einer SQL-Datenbank mit Verbund hergestellt wird. Von der Konsolenanwendung werden die folgenden Schritte ausgeführt:

  1. Zuerst wird mithilfe eines SQLConnectionStringBuilder-Objekts die Verbindungszeichenfolge erstellt.

  2. Anschließend stellt die Konsolenanwendung eine Verbindung mit dem Verbundstamm her, um die Daten des Verbundmitglieds abzurufen und anzuzeigen.

  3. Zum Schluss stellt die Konsolenanwendung eine Verbindung mit einem Verbundmitglied her und zählt die Zeilen im Verbundmitglied.

Verwenden dieses Beispiels

Führen Sie die folgenden Schritte aus, um dieses Beispiel in Visual Studio mit dem SQL-Datenbank-Server zu verwenden:

  1. Öffnen Sie Visual Studio, und erstellen Sie eine neue Konsolenanwendung.

  2. Ersetzen Sie den Code in der Programmdatei durch den Code aus diesem Beispiel.

  3. Ersetzen Sie den Wert der acht statischen Datenelemente.

  4. Führen Sie den Code aus.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;

namespace ConnectToFederationConsoleApp
{
    class Program
    {
        private static string federationName = "<ProvideFederationName>";
        private static string distributionName = "<ProvideDistributionName>";
        private static long federationKey = <ProvideAValue>;
        private static string tableName = "<ProvideTableName>";

        static void Main(string[] args)
        {
            SqlConnectionStringBuilder csb = new SqlConnectionStringBuilder();
            csb.DataSource = dataSource;
            csb.InitialCatalog = databaseName;
            csb.Encrypt = true;
            csb.TrustServerCertificate = true;
            csb.UserID = userName;
            csb.Password = password;

            try
            {
                using (SqlConnection connection = new SqlConnection(csb.ToString()))
                {
                    connection.Open();

                    using (SqlCommand command = connection.CreateCommand())
                    {
                        // Route the connection to Federation Root
                        command.CommandText = "USE FEDERATION ROOT WITH RESET";
                        command.ExecuteNonQuery();

                        //Retrieve Federation Root metadata
                        command.CommandText = @"SELECT f.name, fmc.federation_id, fmc.member_id, fmc.range_low, fmc.range_high " +
                                                            "FROM sys.federations f " +
                                                            "JOIN sys.federation_member_distributions fmc " +
                                                            "ON f.federation_id=fmc.federation_id " +
                                                            "ORDER BY fmc.federation_id, fmc.range_low, fmc.range_high";;
                        using (SqlDataReader reader = command.ExecuteReader())
                        {
                            Console.WriteLine("name\t\tfederation_id\tmember_id\trange_low\trange_high");
                            while (reader.Read())
                            {
                                Console.WriteLine(reader["name"] + "\t" + 
                                    reader["federation_id"] + "\t" + 
                                    reader["member_id"] + "\t" + 
                                    reader["range_low"] + "\t" + 
                                    reader["range_high"] + "\t");
                            }
                            Console.WriteLine();
                        }

                        // Route the connection to a federation member
                        command.CommandText = "USE FEDERATION " + federationName + "(" + distributionName + "=" + federationKey + ") WITH RESET, FILTERING = OFF";
                        command.ExecuteNonQuery();
                        command.CommandText = @"SELECT * FROM " + tableName;

                        using (SqlDataReader reader = command.ExecuteReader())
                        {
                            int iRowCount = 0;
                            while (reader.Read())
                            {
                                iRowCount++;
                            }
                            Console.WriteLine("There are {0} rows in this federation member with the federation key value of {1}.", iRowCount, federationKey.ToString());
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine( String.Format("Error:\r\n{0}\r\n{1}\r\n{2}", ex.Source, ex.Message, ex.StackTrace));
            }

            Console.WriteLine("\nPress ENTER to continue ... ");
            Console.ReadLine();

        }
    }
}

Siehe auch

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
© 2013 Microsoft. Alle Rechte vorbehalten.