Um controle de fonte de dados interage com controles vinculados a dados e oculta o complexo processo de vinculação de dados. Estas são ferramentas que fornecem dados para controles vinculados a dados e suportam a execução de operações como inserção, exclusão e atualização.
Cada controle de fonte de dados agrupa um provedor de dados especial associado a um banco de dados, arquivo XML ou classe personalizada e ajuda:
Gerenciar conexões
Selecione os dados
Gerencie aspectos de apresentação como paginação, cache, etc.
Manipular dados
Existem muitos controles de fonte de dados disponíveis no ASP.NET para obter dados de um servidor SQL, servidor ODBC ou OLE DB, de arquivos XML e de objetos de negócios.
Com base no tipo de dados, esses controles podem ser divididos em duas categorias:
Controle de fonte de dados em camadas
Controle de fonte de dados baseado em tabela
Os controles de fonte de dados para dados hierárquicos são:
XMLDataSource - Permite vincular arquivos XML e strings com ou sem informações de esquema.
SiteMapDataSource - Permite vincular um provedor que fornece informações de mapa do site.
Os controles de fonte de dados usados para dados tabulares são:
Controle de fonte de dados | descrever |
---|---|
SqlDataSource | Representa uma conexão com um provedor de dados ADO.NET que retorna dados SQL, incluindo fontes de dados disponíveis por meio de OLEDB e QDBC. |
ObjectDataSource | Ele permite vincular um objeto de negócios .Net personalizado que retorna dados |
Fonte Linqdata | Permite vincular os resultados de consultas Linq-t0-SQL. (Suportado apenas pelo ASP.NET 3.5) |
Fonte de dados de acesso | Representa uma conexão com um banco de dados Microsoft Access. |
A visualização da fonte de dados é um objeto da classe DataSourceView, que representa uma visualização de dados personalizada projetada para diferentes operações de dados, como classificação, filtragem, etc.
A classe DataSourceView é usada como classe base para todas as classes de visualização da fonte de dados e define o desempenho do controle da fonte de dados.
A tabela a seguir fornece as propriedades da classe DataSourceView:
propriedade | descrever |
---|---|
PodeExcluir | Indica se a exclusão de possíveis fontes de dados é permitida. |
Pode inserir | Indica se será permitida a inserção de possíveis fontes de dados. |
CanPage | Indica se a paginação de possíveis fontes de dados é permitida. |
CanRetrieveTotalRowCount | Indica se as informações totais da linha podem ser obtidas. |
Pode classificar | Indica se os dados podem ser classificados. |
Pode atualizar | Indica se as atualizações são permitidas na fonte de dados potencial. |
Eventos | Obtém uma lista de manipuladores de eventos representados pela exibição da fonte de dados. |
Nome | O nome da visualização. |
A tabela a seguir fornece os métodos da classe DataSourceView:
método | descrever |
---|---|
PodeExecutar | Determine se o comando especificado pode ser executado. |
ExecutarComando | Execute o comando especificado. |
ExecutarExcluir | Executa uma operação de exclusão na lista de dados representada pelo objeto DataSourceView. |
ExecutarInserir | Executa uma operação de inserção na lista de dados representada por um objeto DataSourceView. |
ExecutarSelecionar | Obtenha uma lista de dados do armazenamento de dados subjacente. |
Executar atualização | Executa uma operação de atualização na lista de dados representada pelo objeto DataSourceView. |
Excluir | Executa uma operação de exclusão nos dados associados à visualização. |
Inserir | Executa uma operação de inserção nos dados associados à visualização. |
Selecione | Retorna os dados consultados. |
Atualizar | Executa uma operação de atualização nos dados associados à visualização. |
OnDataSourceViewChanged | Gere o evento DataSourceViewChanged. |
RaiseUnsupportedCapabilitiesError | Chamado pelo método RaiseUnsupportedCapabilitiesError para comparar os recursos exigidos pela operação ExecuteSelect com os recursos suportados pela exibição. |
O controle SqlDataSource representa uma conexão com um banco de dados relacionado, como um banco de dados SQL Server ou Oracle, ou com dados acessíveis via OLEDB ou Open Database Connectivity (ODBC). A conexão de dados é concluída por meio de duas propriedades importantes: ConnectionString e ProviderName.
O trecho de código a seguir fornece a sintaxe básica do controle:
<asp:SqlDataSource runat="server" ID="MySqlSource" ProviderName='<%$ ConnectionStrings:LocalNWind.ProviderName %>' ConnectionString='<%$ ConnectionStrings:LocalNWind %>' SelectionCommand= "SELECT * FROM EMPLOYEES" /><asp:GridView ID="GridView1" runat="server" DataSourceID="MySqlSource" />
A configuração de diferentes operações de dados nos dados subjacentes depende de diferentes propriedades (conjuntos de propriedades) do controle da fonte de dados.
A tabela a seguir fornece o conjunto de propriedades relacionado do controle SqlDataSource, que fornece a interface de programação do controle:
grupo de atributos | descrever |
---|---|
DeleteCommand,DeleteParameters,DeleteCommandType | Obtém ou define a instrução SQL, os parâmetros e o tipo de linhas a serem excluídas nos dados subjacentes. |
ExpressãoFiltro,ParâmetrosFiltro | Obtém e define cadeias de caracteres e parâmetros de filtragem de dados. |
InsertCommand,InsertParameters,InsertCommandType | Obtém ou define a instrução SQL, os parâmetros e o tipo de linhas inseridas nos dados subjacentes. |
SelectCommand,SelectParameters,SelectCommandType | Obtém ou define a instrução SQL, os parâmetros e o tipo de linhas recuperadas dos dados subjacentes. |
SortParameterName | Obtém ou define o nome de um parâmetro de entrada que será usado pelo procedimento armazenado do comando para classificar os dados. |
UpdateCommand,UpdateParameters,UpdateCommandType | Obtém ou define a instrução SQL, os parâmetros e o tipo de linhas atualizadas nos dados subjacentes. |
O trecho de código a seguir mostra o controle da fonte de dados que pode ser usado para executar operações de dados:
<asp:SqlDataSource runat="server" ID= "MySqlSource" ProviderName='<%$ ConnectionStrings:LocalNWind.ProviderName %>' ConnectionString=' <%$ ConnectionStrings:LocalNWind %>' SelectCommand= "SELECT * FROM EMPLOYEES" UpdateCommand= "UPDATE EMPLOYEES SET LASTNAME=@lame" DeleteCommand= "DELETE FROM EMPLOYEES WHERE EMPLOYEEID=@eid" FilterExpression= "EMPLOYEEID > 10"> ..... .....</asp:SqlDataSource>
O controle ObjectDataSource permite que classes definidas pelo usuário conectem a saída de seus métodos a controles vinculados a dados. A interface de programação desta classe é quase a mesma do controle SqlDataSource.
A seguir estão dois aspectos importantes da vinculação de objetos de cliente:
Uma classe vinculável deve ter um construtor padrão, ser sem estado e ter métodos que mapeiem para selecionar, atualizar, inserir e excluir semântica.
Os objetos devem ser atualizados um item por vez; operações em lote não são suportadas.
Vamos direto para um exemplo de uso desse controle. A classe aluno é uma classe usada com um objeto de fonte de dados. Esta classe tem três atributos: identificação do aluno, nome e cidade. Possui um construtor padrão e um método GetStudents que recupera dados.
turma de alunos:
public class Student{ public int StudentID { get; set; } public string Name { get; set; } public string City { get; set; } public Student() { } public DataSet GetStudents() { DataSet ds = new DataSet(); DataTable dt = new DataTable("Students"); dt.Columns.Add("StudentID", typeof(System.Int32)); dt.Columns.Add("StudentName", typeof(System.String)); dt.Columns.Add("StudentCity", typeof(System.String)); dt.Rows.Add(new object[] { 1, "MH Kabir", "Calcutta" }); dt.Rows.Add(new object[] { 2, "Ayan J. Sarkar", "Calcutta" }); ds.Tables.Add(dt); return ds; }}
Execute as etapas a seguir para vincular a ligação a um objeto de fonte de dados e recuperar os dados:
Crie uma nova página da web.
Adicione uma classe (Student.cs) ao projeto Solution Explorer clicando com o botão direito nela, adicionando um modelo de classe e colocando o código acima dentro dela.
Estabeleça métodos para que um aplicativo possa usar uma referência à classe.
Coloque um objeto de controle de fonte de dados no formulário da web.
Configure a fonte de dados selecionando o objeto.
Escolha métodos de dados para diferentes operações de dados. Neste exemplo, existe apenas um método.
Coloque um controle vinculado a dados, como uma visualização em grade, na página e selecione o objeto de fonte de dados como uma fonte de dados potencial.
Nesta fase, a visualização do design deve ficar assim:
Ao executar o projeto, ele recupera o ancestral codificado na classe dos alunos.
O controle AccessDataSource representa uma conexão com um banco de dados Access. Ele é baseado no controle SqlDataSource e fornece uma interface de programação mais simples. O trecho de código a seguir fornece a sintaxe básica da fonte de dados:
<asp:AccessDataSource ID="AccessDataSource1 runat="server" DataFile="~/App_Data/ASPDotNetStepByStep.mdb" SelectCommand="SELECT * FROM [DotNetReferences]"></asp:AccessDataSource>
O controle AccessDataSource abre o banco de dados no modo somente leitura. No entanto, também pode ser usado para realizar operações de inserção, atualização ou exclusão. Isso é feito usando comandos e conjuntos de parâmetros do ADO.NET.
As atualizações são problemáticas para bancos de dados do Access em aplicativos ASP.NET porque o banco de dados do Access é um texto simples e a conta do aplicativo ASP.NET padrão pode ter permissões de gravação nos arquivos de banco de dados.