ASP .NET - Obtendo o último
registro incluído no Access
Para obter o último registro incluído em um banco de dados Access você pode usar a função SQL - MAX .
A função MAX retorna o valor máximo de uma expressão. Sua sintaxe é :
SELECT MAX (expressão)
FROM tabelas
WHERE condição;
Vejamos um exemplo:
Em uma tabela funcionarios você deseja saber o maior salário pago:
SELECT MAX (salario) as "Maior Salario"
FROM funcionarios;
Neste exemplo eu estou usando como alias para o resultado da função a expressão - Maior Salario.
Se você quiser saber o maior salário pago em cada departamento da tabela funcionarios pode usar a seguinte expressão SQL:
SELECT departamento, MAX (salario) as "Maior Salario"
FROM funcionarios
GROUP BY departamento;
Como listei uma coluna que não é usada na função MAX preciso usar a cláusula GROUP BY.
Neste exemplo eu vou usar a função MAX para obter sempre o último registro da tabela produtos após uma inclusão de dados feita em uma página ASP.NET. Abaixo temos a tabela Categorias e a Tabela Produtos exibindo cada uma sua estrutura.
O campo ProductID da tabela Produtos é uma chave primária do tipo Autonumeração e por isto sofre um incremento de uma unidade sempre que for incluído um registro na tabela.
![]() |
![]() |
Na página ASP.NET que eu vou chamar de ultimoreg.aspx eu vou usar dois campos do tipo TextBox para informar o Nome do Produto e a quantidade do produto e um dropdown para exibir as categorias presentes na tabela Categorias.
Note que a coluna CategoryID é chave primária na tabela Categorias e chave estrangeira na tabela Produtos. Abaixo temos o layout do formulário usado sendo exibido no Web Matrix na guia Design.
O código HTML do projeto é dado abaixo: Nele estão declarados os objetos ASP .NET que vamos usar no projeto.
O botão de comando - button1 - tem vinculado ao seu evento Click a rotina doInsert. Veja linha de código abaixo:
<asp:button id="button1"
onclick="doInsert" runat="server"
Text="Enviar"></asp:button>
<html> <head> <title>Obtendo o último registro incluído no Access</title> </head> <body> <form runat="server"> <table style="WIDTH: 340px; HEIGHT: 144px"> <tbody> <tr> <td align="right"> Produto</td> <td> <asp:textbox id="frmitemName" runat="server" Width="208px"></asp:textbox> </td> </tr> <tr> <td align="right"> Quantidade</td> <td> <asp:textbox id="frmitemText" runat="server" Width="247px"></asp:textbox> </td> </tr> <tr> <td align="right"> Categoria</td> <td> <asp:dropdownlist id="frmCatID" runat="server" Width="147px"></asp:dropdownlist> </td> </tr> <tr> <td align="right"> <asp:button id="button1" onclick="doInsert" runat="server" Text="Enviar"></asp:button> </td> <td> </td> </tr> </tbody> </table> <asp:Label id="label1" runat="server"></asp:Label> </form> </body> </html> |
O código do projeto e dado a seguir. Nele estou fazendo o seguinte:
Código vinculado ao evento Load da página:
Código da rotina doInsert que inclui um registro na tabela Produtos e obtêm o código do último registro incluído usando a função SQL MAX.
Dim
intNewID Sub Page_Load(Source as Object, E as EventArgs) Dim strConn as string = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("/data/Nwind.mdb") & ";" Dim MySQL as string = "Select CategoryID, CategoryName from Categorias Order by CategoryID"
Dim MyConn as New OleDBConnection(strConn) Dim MySQL2 as string =
"select MAX(ProductID) from
Produtos" |
Ao executar a página ultimoreg.aspx no servidor Web matrix iremos obter:
![]() |
O objeto Command cmd2 (cmd2.executescalar()) executa a declaração SQL usando o método - ExecuteScalar - que retorna um valor único como resultado da função agregada SUM . (Poderíamos ter usando outras funções como : COUNT, MIN , AVG E SUM).
Até o próximo artigo ASP.NET
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências: