none
Busca de dados RRS feed

  • 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á!
    quarta-feira, 26 de dezembro de 2012 11:42

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
    quarta-feira, 26 de dezembro de 2012 11:59
  • 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





    quarta-feira, 26 de dezembro de 2012 12:52

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
    quarta-feira, 26 de dezembro de 2012 11:59
  • 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.

    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





    quarta-feira, 26 de dezembro de 2012 12:52
  • Obrigado, vou pesquisar sobre o CustomValidation.

    Valew!.

    quarta-feira, 26 de dezembro de 2012 13:13