Usuário com melhor resposta
Busca de dados

Pergunta
-
Bom dia a todos, gostaria de saber qual a melhor maneira de realizar uma busca de informações em uma base de dados através de um campo, por exemplo:
>checar a existência na base de um cnpj/cpf em um cadastro, ou até mesmo de um e-mail.
Agradeço desde já!- Editado Éverton França quarta-feira, 26 de dezembro de 2012 11:43
Respostas
-
Faz uma lambda e carrega o resultado dela em uma ViewBag.
Ae você pode usar essa ViewBag em uma WebGrid ou outro Helper.
No Controller, na ação do Get faz algo assim: 'se campo CNPJ não estiver vazio faz pesquisa no banco If (Not IsNothing(CNPJ) And CNPJ <> "") Then Dim strCNPJ As String = CNPJ Dim dadCNPJ = From Contabilidade In db.Contabilidades Where Contabilidade.CNPJ.Equals(strCNPJ) Select Contabilidade 'e carrega na webgrid a pesquisa ViewBag.lstWebGridContabilidade = dadCNPJ ========== Ele verificou se o campo CNPJ não estava fazio, ou seja, ele esta trazendo um numero de CNPJ, então pesquisa no banco e me retorna tal CNPJ, ele me retorna o CNPJ na variável dad CNPJ que por sua vez popula uma ViewBag, ok? Na View vc vai popular a WebGrid com a ViewBag, dessa forma: @code Dim gridItem = New WebGrid(ViewBag.lstWebGridContabilidade, rowsPerPage:=3, selectionFieldName:="SelectedRow") @gridItem.GetHtml(TableStyle:="webgrid", headerStyle:="webgrid-header", footerStyle:="webgrid-footer", alternatingRowStyle:="webgrid-alternating-row", rowStyle:="webgrid-row-style", columns:=gridItem.Columns( gridItem.Column("IDContabilidade", header:="ID", style:="webgrid-id"), gridItem.Column("NomeFantasia", header:="Nome"), gridItem.Column("CNPJ", header:="CNPJ", style:="webgrid-data"), gridItem.Column("", header:="", Style:="webgrid-alterar", Format:=Function(item) Html.Raw(String.Format(" ", Url.Action("Edit", "Contabilidade", New With {.id = item.IDContabilidade}), Url.Content("http://www.plongez.com/Intranet/Imagens/EditarLeg.png")))), gridItem.Column("", header:="", Style:="webgrid-alterar", Format:=Function(item) Html.Raw(String.Format(" ", Url.Action("Delete", "Contabilidade", New With {.id = item.IDContabilidade}), Url.Content("http://www.plongez.com/Intranet/Imagens/deleteLeg.png")))))) End Code ========= Ou seja, na primeira linha do código estamos populando a webgrid com aquela ViewBag do Controller, que irá receber apenas o dado do filtro. e o input, vc usa um input normal
Paulo Marcelo Dalbosco
- Marcado como Resposta Éverton França quarta-feira, 26 de dezembro de 2012 12:19
-
Faz algo assim.
Dim _cnpj = From e In db.Revendas Where e.CNPJ = revendas.CNPJ Select e If _cnpj.ToList.Count < 0 Then TempData("alertMessageAll") = "CNPJ Duplicado!"
Return View() End If
Eu fiz este tipo de validação em uma classe para poder usar o "ModelState", ja ouviu falar em "CustomValidation"?
Da uma olhada nesse cara que é interessante. Só que dae ao invés de retornar uma msg ele retorna False ou True, a msg vc trata na sua entidade.
Paulo Marcelo Dalbosco
- Editado Paulo M Dalbosco quarta-feira, 26 de dezembro de 2012 13:06
- Marcado como Resposta Éverton França quarta-feira, 26 de dezembro de 2012 13:12
Todas as Respostas
-
Faz uma lambda e carrega o resultado dela em uma ViewBag.
Ae você pode usar essa ViewBag em uma WebGrid ou outro Helper.
No Controller, na ação do Get faz algo assim: 'se campo CNPJ não estiver vazio faz pesquisa no banco If (Not IsNothing(CNPJ) And CNPJ <> "") Then Dim strCNPJ As String = CNPJ Dim dadCNPJ = From Contabilidade In db.Contabilidades Where Contabilidade.CNPJ.Equals(strCNPJ) Select Contabilidade 'e carrega na webgrid a pesquisa ViewBag.lstWebGridContabilidade = dadCNPJ ========== Ele verificou se o campo CNPJ não estava fazio, ou seja, ele esta trazendo um numero de CNPJ, então pesquisa no banco e me retorna tal CNPJ, ele me retorna o CNPJ na variável dad CNPJ que por sua vez popula uma ViewBag, ok? Na View vc vai popular a WebGrid com a ViewBag, dessa forma: @code Dim gridItem = New WebGrid(ViewBag.lstWebGridContabilidade, rowsPerPage:=3, selectionFieldName:="SelectedRow") @gridItem.GetHtml(TableStyle:="webgrid", headerStyle:="webgrid-header", footerStyle:="webgrid-footer", alternatingRowStyle:="webgrid-alternating-row", rowStyle:="webgrid-row-style", columns:=gridItem.Columns( gridItem.Column("IDContabilidade", header:="ID", style:="webgrid-id"), gridItem.Column("NomeFantasia", header:="Nome"), gridItem.Column("CNPJ", header:="CNPJ", style:="webgrid-data"), gridItem.Column("", header:="", Style:="webgrid-alterar", Format:=Function(item) Html.Raw(String.Format(" ", Url.Action("Edit", "Contabilidade", New With {.id = item.IDContabilidade}), Url.Content("http://www.plongez.com/Intranet/Imagens/EditarLeg.png")))), gridItem.Column("", header:="", Style:="webgrid-alterar", Format:=Function(item) Html.Raw(String.Format(" ", Url.Action("Delete", "Contabilidade", New With {.id = item.IDContabilidade}), Url.Content("http://www.plongez.com/Intranet/Imagens/deleteLeg.png")))))) End Code ========= Ou seja, na primeira linha do código estamos populando a webgrid com aquela ViewBag do Controller, que irá receber apenas o dado do filtro. e o input, vc usa um input normal
Paulo Marcelo Dalbosco
- Marcado como Resposta Éverton França quarta-feira, 26 de dezembro de 2012 12:19
-
Obrigado Paulo, mas o que eu queria saber era algo mais ou menos desse tipo, o CNPJ informado, com essa informação eu vou na base e verifico se já existe aquele CNPJ, caso exista eu mostro uma mensagem de erro.
Muito obrigado pela resposta, me ajudou em outro quesito.
-
Faz algo assim.
Dim _cnpj = From e In db.Revendas Where e.CNPJ = revendas.CNPJ Select e If _cnpj.ToList.Count < 0 Then TempData("alertMessageAll") = "CNPJ Duplicado!"
Return View() End If
Eu fiz este tipo de validação em uma classe para poder usar o "ModelState", ja ouviu falar em "CustomValidation"?
Da uma olhada nesse cara que é interessante. Só que dae ao invés de retornar uma msg ele retorna False ou True, a msg vc trata na sua entidade.
Paulo Marcelo Dalbosco
- Editado Paulo M Dalbosco quarta-feira, 26 de dezembro de 2012 13:06
- Marcado como Resposta Éverton França quarta-feira, 26 de dezembro de 2012 13:12
-