Compartilhar via


Visão geral sobre o controle de servidor Web SqlDataSource

The SqlDataSource control enables you to use a Web server control to access data that is located in a relational data base.This can include Microsoft SQL Server and Oracle databases, as well as OLE DB and ODBC data sources.You can use the SqlDataSource control with data-bound controls such as the GridView, FormView, and DetailsView controls to display and manipulate data on an ASP.NET Web page, using little or no code.

Esse tópico contém:

  • Segundo plano

  • Exemplos de código

  • Referência de Classe

Segundo plano

The SqlDataSource controle usa classes ADO.NET para interagir com qualquer banco de dados suportado por ADO.NET. Isso inclui o Microsoft SQL servidor (usando o System.Data.SqlClient provedor) System.Data.OleDb, System.Data.Odbce a Oracle (usando o System.Data.OracleClient provedor). Using a SqlDataSource control allows you to access and manipulate data in an ASP.NET page without using ADO.NET classes directly.You provide a connection string to connect to your database and define the SQL statements or stored procedures that work with your data.At run time, the SqlDataSource control automatically opens the database connection, executes the SQL statement or stored procedure, returns the selected data (if any), and then closes the connection.

Connecting the SqlDataSource Control to a Data Source

When you configure a SqlDataSource control, you set the ProviderName property to the type of database (the default is System.Data.SqlClient) and the ConnectionString property to a connection string that includes information required to connect to the database.The contents of a connection string differ depending on what type of database the data source control is accessing.For example, the SqlDataSource control requires a server name, database (catalog) name, and information about how to authenticate the user when connecting to a SQL Server.For information on valid connection strings, see the ConnectionString property topics for the SqlConnection, OracleConnection, OleDbConnection, and OdbcConnection classes.

Instead of setting connection strings at design time as property settings in the SqlDataSource control, you can store them centrally as part of your application's configuration settings using the connectionStrings configuration element.This enables you to manage connection strings independently of your ASP.NET code, including encrypting them using Protected Configuration.The following example shows a connection to the SQL Server Northwind sample database using a connection string stored in the connectionStrings configuration element named MyNorthwind.

<%@ Page language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head >
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" >
      <asp:SqlDataSource
          id="SqlDataSource1"
          
          DataSourceMode="DataReader"
          ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
          SelectCommand="SELECT LastName FROM Employees">
      </asp:SqlDataSource>

      <asp:ListBox
          id="ListBox1"
          
          DataTextField="LastName"
          DataSourceID="SqlDataSource1">
      </asp:ListBox>

    </form>
  </body>
</html>
<%@ Page language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head >
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" >
      <asp:SqlDataSource
          id="SqlDataSource1"
          
          DataSourceMode="DataReader"
          ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
          SelectCommand="SELECT LastName FROM Employees">
      </asp:SqlDataSource>

      <asp:ListBox
          id="ListBox1"
          
          DataTextField="LastName"
          DataSourceID="SqlDataSource1">
      </asp:ListBox>

    </form>
  </body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head >
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" >
      <asp:SqlDataSource
          id="SqlDataSource1"
          
          DataSourceMode="DataReader"
          ConnectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;"
          SelectCommand="SELECT LastName FROM Employees">
      </asp:SqlDataSource>

      <asp:ListBox
          id="ListBox1"
          
          DataTextField="LastName"
          DataSourceID="SqlDataSource1">
      </asp:ListBox>

    </form>
  </body>
</html>

Emitindo Comandos de Dados com o Controle SqlDataSource

Você pode especificar até quatro comandos (consultas SQL) para o SqlDataSource comando: a SelectCommand, UpdateCommand, DeleteCommande um InsertCommand. Cada comando é uma propriedade separada do controle da fonte de dados.Para cada propriedade de linha de comando, você especifica uma instrução SQL para o controle da fonte de dados para executar.Se o controle da fonte de dados se conecta a um banco de dados que suporta os procedimentos armazenados, você pode especificar o nome de um procedimento armazenado no local da instrução SQL.

Você pode criar comandos parametrizados que incluem espaços reservados para valores a serem fornecidos em tempo de execução.O exemplo a seguir mostra um típico comando com parâmetro SQL Select:

Select CustomerID, CompanyName From Customers Where City = @city

Você pode criar objetos de parâmetro que especificam onde o comando deve obter valores de parâmetro em tempo de execução, como de outro controle, de uma sequência de caracteres da consulta e assim por diante.Como alternativa, você pode especificar valores de parâmetros programaticamente.Para obter mais informações, consulte Usando parâmetros com o controle SqlDataSource.

O controle da fonte de dados executa os comandos quando seu método correspondente Select, Update, Delete ou Insert for chamado.O método Select é chamado automaticamente quando você chama o método DataBind da página ou de um controle vinculado ao controle da fonte de dados.Você também pode chamar qualquer um dos quatro métodos explicitamente quando você desejar que o controle da fonte de dados execute um comando.Alguns controles, como o controle GridView, podem chamar os métodos automaticamente, sem precisar que você chame os métodos ou que você chama explicitamente o método DataBind.Para obter mais informações, consulte Selecionando Dados Usando o Controle SqlDataSource e Modificando dados usando o controle SqlDataSource.

Retornando Objetos DataSet ou DataReader

The SqlDataSource controle pode retornar dados de duas formas: sistema autônomo a DataSet objeto ou sistema autônomo um leitor de dados ADO.NET. Você pode especificar qual formulário retornar, definindo a propriedade DataSourceMode do controle da fonte de dados.Um objeto DataSet contém todos os dados na memória do servidor, permitindo a você manipular os dados de diversas maneiras depois de recuperá-los.Um leitor de dados fornece um cursor de leitura somente que pode buscar registros individuais.Como uma regra, você escolhe retornar um dataset se você deseja filtrar, classificar ou paginar através de dados depois de recuperá-los ou se você desejar manter uma cache.Por outro lado, você usa um leitor de dados quando você simplesmente deseja retornar os dados e estiver usando um controle na página para exibir os dados.Por exemplo, usar um leitor de dados é ideal para retornar dados que você deseja exibir em um controle ListBox,DropDownList ou GridView, onde uma lista de resultados é exibida em um formato somente de leitura.

Fazendo Cache com o Controle SqlDataSource

O controle SqlDataSource pode armazenar em cache os dados que ele recuperou, que podem melhorar o desempenho de seus aplicativos, evitando consultas dispendiosas.O cache é prático em quase toda situação onde os dados são altamente não voláteis e os resultados em cache são pequenos o suficiente para evitar a utilização de muita memória do sistema.

O cache não está habilitado por padrão.Você pode ativá-lo configurando EnableCaching para true.O mecanismo de cache é baseado no tempo; você pode definir a propriedade CacheDuration para o número de segundos de cache de dados.O controle da fonte de dados mantém uma entrada de cache separada para cada combinação de conexão, comando selecionado, parâmetros selecionados e configurações de cache.

O controle SqlDataSource pode também aproveitar o recurso de dependência de cache do SQL Server (se disponível em sua versão do SQL Server).Esse recurso permite que você especifique que os dados na cache sejam mantidos até que o SQL Server relate uma alteração na tabela especificada.Esse tipo de armazenamento em cache permite que você melhore o desempenho do acesso a dados em seus aplicativos Web, pois você pode minimizar a recuperação de dados apenas para os horários que seja necessário obter dados atualizados.

Para obter mais informações, consulte Fazendo Cache de Dados com o Controle SqlDataSource.

Filtrando com o Controle SqlDataSource

Se você tiver habilitado a cache para o controle SqlDataSource e especificado um dataset como o formato de dados retornados por uma consulta Select, você também pode filtrar os dados sem executar novamente a consulta.O controle SqlDataSource suporta uma propriedade FilterExpression que permite que você especifique os critérios de seleção que estão aplicados aos dados mantidos pelo controle da fonte de dados.Você também pode parametrizar a expressão de filtro criando objetos FilterParameters especiais que fornecem os valores em tempo de execução para a expressão de filtro.

Classificando com o Controle SqlDataSource

O controle SqlDataSource oferece suporte para solicitações de classificação de controle de vínculo quando o DataSourceMode é definida como DataSet.Para obter mais informações, consulte Classificar dados com controles de fonte de dados.

Voltar ao topo

Exemplos de código

Selecionando Dados Usando o Controle SqlDataSource

Usando parâmetros com o controle SqlDataSource

Modificando dados usando o controle SqlDataSource

Fazendo Cache de Dados com o Controle SqlDataSource

Como: Ativar filtragem para o controle SqlDataSource

Como: Conectar-se a um banco de dados SQL servidor usando o controle SqlDataSource

Como: Conectar-se a um banco de dados do acesso usando o controle SqlDataSource

Como: Conectar-se a um banco de dados ODBC usando o controle SqlDataSource

Como: Conectar-se a um banco de dados Oracle usando o controle SqlDataSource

Voltar ao topo

Referência de Classe

A tabela seguinte lista as classes chave que estão relacionados ao controle SqlDataSource.

Membro

Descrição

SqlDataSource

A classe principal para o controle.

Voltar ao topo

Consulte também

Conceitos

Visão geral sobre o controle de servidor Web LinqDataSource

Referência

Visão geral sobre o controle de servidor Web ObjectDataSource

Outros recursos

Controles Servidores da Web com fonte de dados