Passo-a-passo: recuperação, atualização, inserção e exclusão de dados com o LinqDataSource e controles DetailsView
Neste exame Através, você criará um tabela de banco de dados simples e um página da Web que usa o LinqDataSource o controle.A página da Web permite que os usuários recuperem, atualizem, insiram e excluam dados a partir de tabela do banco de dados.Você usará um DetailsView Controle para exibir os dados.O LinqDataSource Controle permite que você executar todas essas operações sem gravar Selecionar, atualizar, inserir, ou excluir as instruções.
Você usará o Para criar uma classe que representa o Banco de Dados tabela que contém os valores.O LinqDataSource Controle irá interagir com essa classe gerada para recuperar, atualizar, inserir e excluir os dados.
Pré-requisitos
Para implementar os procedimentos no seu próprio ambiente de desenvolvimento você precisa:
ou O Visual Web Developer Express Edition
SQL Server Express Edition instalado em seu computador.Se você possui o SQL Server instalado, você pode usá-lo, mas deve fazer pequenos ajustes em alguns procedimentos.
Uma página Web ASP.NET.
Criando uma tabela de banco de dados
Para executar as etapas nessa explicação passo a passo, você deve ter uma tabela de banco de dados.Se você ainda não tem uma tabela, você pode criar uma usando o procedimento a seguir.Se você usar uma tabela que já existe, os passos em alguns dos procedimentos não vão coincidir exatamente ao seu banco de dados.No entanto, os conceitos ilustrados nesse passo-a-passo serão os mesmos.
Para criar uma tabela no banco de dados
Se o site não AL Pronto ter uma pasta App_Data, em Explorer soluçãoClique com o botão direito do mouse no projeto, clique em Adicionar pasta ASP.NETe em seguida, clique em App_Data.
Com o botão direito do mouse clique na pasta App_Data e em seguida, clique em Adicionar novo item.
Em Modelos InstaladosSelecione SQL DatabaseAlterar o nome de arquivo para Reviews.mdf e em seguida, clique em Adicionar.
Em Gerenciador de Servidores, abra o nó Reviews.mdf e clique com o botão direito do mouse o Tabelas a pasta.
Clique em Adicionar nova tabela.
Crie as seguintes colunas na tabela:
Nome da coluna
Tipo de dados
Propriedades
FilmeID
int
IsIdentity = Sim
Não nulo
Chave primária
Title
nvarchar(50)
Produtor
nvarchar(50)
Revisão
nvarchar(1000)
Nota
int
Não nulo
Salve a tabela e a nomeie RevisãoFilmes.
Adicione vários registros à tabela RevisãoFilmes com massa de dados.
Em Server ExplorerClique com o botão direito do mouse na tabela MovieReviews e clique em Mostrar tabela de dados.Não é obrigatório especificar um valor para FilmeID porque esse valor é gerado automaticamente pelo banco de dados.
Criando classes para representar entidades do banco de dados
Para trabalhar com o LinqDataSource o controle, você trabalhar com classes que representam entidades de banco de dados.Você pode usar uma ferramenta na ou O Visual Web Developer Express Edition Para criar essas classes.
Criando uma classe para a tabela RevisãoFilmes
Se o site ainda não tiver uma pasta App_Code, no. Explorer soluçãoClique com o botão direito do mouse no projeto, clique em Adicionar pasta ASP.NETe em seguida, clique em App_Code.
Clique com o botão direito do mouse na pasta App_Code e em seguida, clique em Adicionar novo item.
Em Modelos instaladosSelecione Linq para SQL classes modelo, Renomear arquivo Reviews.dbml e em seguida, clique em Adicionar.
O Object Relational Designer é exibida.
Em Gerenciador de Servidores, arraste a tabela MovieReviews para a Object Relational Designer a janela.
A tabela RevisãoFilmes e as suas colunas são representadas como uma entidade chamada RevisãoFilme na janela do designer.
Salve o arquivo Reviews.dbml.
No Gerenciador de Soluções, abra o arquivo Reviews.designer.cs ou Reviews.designer.vb.
Observe que agora ele possui classes para RevisãoDataContext e RevisãoFilme.A classe RevisãoDataContext representa o banco de dados e a classe RevisãoFilme representa a tabela do banco de dados.O construtor sem parâmetro para a classe RevisãoDataContext lê a seqüência de caracteres da conexão a partir do arquivo Web.config.
Abra o arquivo Web.config.
Observe que a Cadeia de Caracteres da Conexão foi adicionado na connectionStrings Elemento.
Feche o arquivo da classe e o arquivo Web.config.
Criando e configurando um Controle LinqDataSource
Agora que você tenha um tabela de banco de dados e as classes que representam entidades de banco de dados, você pode usar um LinqDataSource Controle em um página da Web o ASP.NET para gerenciar os dados.
Criando e configurando um Controle LinqDataSource
Em Criar um novo página da Web do ASP.NET e alternar para design Exibir.
A partir de Dados Guia das ToolboxArraste um LinqDataSource Controle e Soltar-la dentro de Formulário Elemento sobre o página da Web.
Você pode deixar a propriedade ID como LinqDataSource1.
Definir o ContextTypeName() Propriedade para ReviewsDataContext.
Definir o TableName Propriedade para MovieReviews.
Set AutoPage para verdadeiro e alternar para Modo de exibição Source.
O exemplo a seguir mostra o marcação declarativa para a LinqDataSource o controle.
< ASP:LinqDataSource ContextoTypeName = "ReviewsDataContexto" TableName = "MovieReviews" A AutoPágina = "true" ID = "LinqDataSource1" runat = "Servidor" > < / ASP:LinqDataSource >
Note que você não precisa especificar qualquer comando de banco de dados para selecionar os dados.
Adicionando um Controle para Exibir Dados
Agora você pode adicionar um DetailsView Controle e Ligar-la para o LinqDataSource o controle.O DetailsView Controle permite que os usuários exibir dados que são gerenciados pelo LinqDataSource o controle.
Para conectar os dados do LinqDataSource a um DetailsView
Na Dados Guia das ToolboxDuplo - Clique na DetailsView controle para adicioná-lo para a página.
Você pode deixar a propriedade ID como DetailsView1.
Definir o DataSourceID Propriedade para LinqDataSource1.
Definir o DataKeyNames Propriedade para FilmeID.
Set AllowPaging para verdadeiro.
O exemplo a seguir mostra o marcação declarativa para a DetailsView o controle.
< ASP:DetailsView DataSourceID = "LinqDataSource1" DataKeyNomes = "MovieID" AllowPaginação = "true" ID = "DetailsView1" runat = "server" > < / ASP:DetailsView >
Salve suas alterações e, em seguida, pressione CTRL + F5 para exibir a página em um navegador.
O DetailsView o controle exibe os valores para o registro atual da tabela MovieReviews.O DetailsView Controle cria automaticamente os controles da Web para exibir cada coluna a partir de tabela de banco de dados.
Habilitando usuários para atualizar, inserir e excluir dados
O LinqDataSource o controle pode criar os comandos para atualizar, inserir e excluir dados.
Habilitando as operações de atualização, inserção e exclusão.
Na LinqDataSource Controlar, defina o EnableUpdate, EnableInserte EnableDelete Propriedades para verdadeiro.
O exemplo a seguir mostra o marcação declarativa para a LinqDataSource o controle.
< ASP:LinqDataSource ContextTypeName = "ReviewsDataContext" TableName = "MovieReviews" A AutoPágina = "true" EnableAtualizar = "true" EnableInserir = "true" EnableExcluir = "true" ID = "LinqDataSource1" runat = "server" > < / ASP:LinqDataSource >
Na DetailsView Controlar, defina o AutoGenerateEditButton, AutoGenerateInsertButtone AutoGenerateDeleteButton Propriedades para verdadeiro.
Para limitar quais campos são exibidos na DetailsView Controlar e para definir a ordem dos campos, defina o AutoGenerateRows Propriedade para false.
Adicione campos para as colunas de Nome, Produtor, Nota e Revisão e associe-os aos campos de dados correspondentes.
O exemplo a seguir mostra o marcação declarativa para a DetailsView o controle.
< ASP:DetailsView DataSourceID = "LinqDataSource1" DataKeyNames = "MovieID" AutoGenerateRows = "false" AutoGenerateEditBotão = "true" AutoGenerateInsertButton = "true" AutoGenerateDeleteButton = "true" AllowPaging = "true" ID = "DetailsView1" runat = "server" > < campos > < ASP:Boundcampo HeaderText = "título" DataField = "título" / ≫ < ASP:BoundField HeaderText = "Theater" DataField = "Theater" / ≫ < ASP:Boundcampo HeaderTexto = " número de estrelas " DataField = "SNúcleo" / ≫ < ASP:BoundField HeaderText = " Re Exibir " DataField = "Revisão" / ≫ < / campos > < / ASP:DetailsView >
O FilmeID coluna estiver selecionada a partir de fonte de dados com o Outro colunas.No entanto, não é exibida na DetailsView Controlarar e o usuário não poderá ser modificar seu valor.O FilmeID Propriedade deve ser selecionada para ativar o LinqDataSource controle para criar automaticamente os comandos para atualizar, inserir e excluir dados.
Observe que você não tem que especificar comandos para essas operações com dados.
Save the changes and press CTRL+F5 to view the page in a browser.
O DetailsView o controle exibe os campos para o registro atual de MovieReExibições tabela.Você pode Atualizar, inserir e excluir registros clicando nos botões correspondentes na DetailsView o controle.
Próximas etapas
Este exame Através mostrou a funcionalidade básica de atualizar, inserir e excluir registros usando o LinqDataSource o controle.Para aprender sobre recursos adicionais das LinqDataSource o controle, você pode fazer o seguinte:
Você pode Filtro os registros de dados são retornados por especificando um valor para o WHERE() Propriedade.Você também pode selecionar somente um subconjunto de colunas, especificando um valor para o Select Propriedade.Para obter mais informações, consulte Demonstra Passo a passo: Selecionando e filtragem de um subconjunto de dados com LinqDataSource os controles GridView.
Para certificar-se de que os dados de Banco de Dados não foi alterado desde que o página da Web lê-lo, o LinqDataSource Controla os armazenamentos de Original valores de todos os dados selecionados.Quando a atualização é lançada para o servidor Web, o LinqDataSource Objeto compara cada campo armazenado com o valor atual no banco de dados.Se forem iguais (indicando que o registro não foi alterado), o LinqDataSource Objeto atualiza ou exclui o registro.Armazenar todos os valores da coluna original pode ser ineficiente.Para evitar esse problema, você pode adicionar um Carimbo data/hora Coluna aos seus dados Tabela de Base.Para obter mais informações, consulte Demonstra Passo a passo: Usando um Carimbo de data/hora com o Controlarar de LinqDataSource para Marcar a integridade de dados.