none
Fazer locate como no Delphi RRS feed

  • Pergunta

  • Olá, como posso fazer um locate igual realizo no Delphi em .net C#.

    Alguém pode me ajudar ?

     

    if (qryConsultaUsuario.Locate('Nome', nome_user,[loPartialKey, loCaseInsensitive])) then

    begin

     

    end;

    sábado, 26 de abril de 2008 22:40

Respostas


  • Perdoe-me,...

    para ficar equivalente ao teu código Delphi:

    Agora sim,...
    {
    if (dataTable.Select("nome_user = " + nomeUsuario).Length > 0) {
    //faz algo
    }
    }


    []s
    sábado, 26 de abril de 2008 23:14
  • Obrigado Laércio, fiz dessa forma e funcionou:

     

    usuariosTableAdapter.Fill(dsGeral.usuarios);

    string nome = "'Alexandre'";

    if (dsGeral.usuarios.Select("nome = " + nome.ToUpper()).Length > 0)

    {

      MessageBox.Show("Achou...");

    }

    quarta-feira, 30 de abril de 2008 12:47
  • /// <summary>

    /// Este metodo funciona como o Locate do Delphi.

    /// Você usa ele sozinho numa linha, pois o objeto BindingSource é passado

    /// por referência. Ex.: localizar(ref seuBindingSource, "NOME", "JEAN")

    /// </summary>

    /// <param name="bs">

    /// Recebe o objeto BindingSource - não esqueça de colocar ref antes.

    /// </param>

    /// <param name="campo">

    /// Recebe o nome do campo da tabela à pesquisar.

    /// </param>

    /// <param name="valor">

    /// Recebe o valor a ser pesquisado no campo.

    /// </param>

     

    public void localizar(ref BindingSource bs, string campo, string valor)

    {

        DataTable dt = new DataTable();

        dt = (DataTable) bs.DataSource;

        DataRow[] linhas = dt.Select(campo+" = '" + valor + "'");

        if (linhas.Length > 0)

        {

            bs.Position = dt.Rows.IndexOf(linhas[0]);

        }

    }

     

    aproveitei a idéia que foi apresentada e espero ter ajudado.

    quinta-feira, 10 de julho de 2008 16:44

Todas as Respostas


  • Tente isto:

    Se você estiver usando um DataTable

    {

    DataRow[] usuariosSelecionados = dataTable.Select("nome_user = " + nomeUsuario);

    }


    []s
    sábado, 26 de abril de 2008 23:08

  • Perdoe-me,...

    para ficar equivalente ao teu código Delphi:

    Agora sim,...
    {
    if (dataTable.Select("nome_user = " + nomeUsuario).Length > 0) {
    //faz algo
    }
    }


    []s
    sábado, 26 de abril de 2008 23:14
  • Obrigado Laércio, fiz dessa forma e funcionou:

     

    usuariosTableAdapter.Fill(dsGeral.usuarios);

    string nome = "'Alexandre'";

    if (dsGeral.usuarios.Select("nome = " + nome.ToUpper()).Length > 0)

    {

      MessageBox.Show("Achou...");

    }

    quarta-feira, 30 de abril de 2008 12:47
  • /// <summary>

    /// Este metodo funciona como o Locate do Delphi.

    /// Você usa ele sozinho numa linha, pois o objeto BindingSource é passado

    /// por referência. Ex.: localizar(ref seuBindingSource, "NOME", "JEAN")

    /// </summary>

    /// <param name="bs">

    /// Recebe o objeto BindingSource - não esqueça de colocar ref antes.

    /// </param>

    /// <param name="campo">

    /// Recebe o nome do campo da tabela à pesquisar.

    /// </param>

    /// <param name="valor">

    /// Recebe o valor a ser pesquisado no campo.

    /// </param>

     

    public void localizar(ref BindingSource bs, string campo, string valor)

    {

        DataTable dt = new DataTable();

        dt = (DataTable) bs.DataSource;

        DataRow[] linhas = dt.Select(campo+" = '" + valor + "'");

        if (linhas.Length > 0)

        {

            bs.Position = dt.Rows.IndexOf(linhas[0]);

        }

    }

     

    aproveitei a idéia que foi apresentada e espero ter ajudado.

    quinta-feira, 10 de julho de 2008 16:44