none
Pegar dados de outro form RRS feed

  • Pergunta

  • Boa tarde programadores!

    estou tentando pegar dados de um form e passar para outro

    ex: criei um form para cadastrar funcionários e outro form de serviço.

    queria fazer uma Combobox no form serviço onde carregaria o nome dos funcionários já cadastrado.

    quarta-feira, 11 de junho de 2014 19:01

Respostas

  • OK carapina, não foi isso que o Eugenio quis dizer, e é minha pergunta também.

    Esqueça o FORM por enquanto. O DGV carrega os dados de onde? Um banco de dados? Um arquivo? Aonde?

    Porque se você for listar os funcionários em uma combobox no form de serviços, então você tem que fazer uma query (se for um banco de dados) para selecionar os funcionários, tipo

    /* Tabela de Funcionários
        TABLE: employees
        COLUMNS:
            id (matrícula e PK)
            name (nome completo)
            resignation (data de demissão, se não demitido, NULL
    */
    
    SELECT id, name FROM employees WHERE NOT resignation IS NULL
    
    /* Seleciona apenas os funcionários NÃO demitidos */

    Apenas um exemplo. Ai então você carrega essa query em um DATASET e define ele como DataSource da combobox, e chama o método DataBind() para carregar.

    Friend Function ExecuteQueryOnAdapter(ByRef Conn As System.Data.SqlClient.SqlConnection, ByRef Query As String) As System.Data.DataSet
        Dim command As System.Data.SqlClient.SqlCommand = Conn.CreateCommand()
        command.CommandText = Query
        Dim adapter As System.Data.SqlClient.SqlDataAdapter = New System.Data.SqlClient.SqlDataAdapter(command)
        Dim datas As New System.Data.DataSet
        Try
            adapter.Fill(datas)
            adapter.Dispose()
        Catch
            adapter.Dispose()
            datas = Nothing
        End Try
        Return datas
    End Function

    Use esta função para fazer a query e gerar um DataSet (usa uma SqlConnection já pronto e aberto).

    terça-feira, 17 de junho de 2014 11:30
  • Agora, apenas para fins de responder a sua pergunta: como transferir informações entre Foms.

    Bem, deixe como PUBLIC a declaração dos componentes que você quer acessar. Assim você pode chamar a instância do Form em outro form e acessar o componente (ou ao invés de Public, Friend - para você só acessar dentro do mesmo projeto).

    terça-feira, 17 de junho de 2014 11:31

Todas as Respostas

  • Boa noite,

    onde ficarão gravados esses funcionários pra poder recuperá-los?

    quinta-feira, 12 de junho de 2014 00:39
  • bom tem um dgv em que mostra todos as informações dele depois de gravado
    quinta-feira, 12 de junho de 2014 18:45
  • OK carapina, não foi isso que o Eugenio quis dizer, e é minha pergunta também.

    Esqueça o FORM por enquanto. O DGV carrega os dados de onde? Um banco de dados? Um arquivo? Aonde?

    Porque se você for listar os funcionários em uma combobox no form de serviços, então você tem que fazer uma query (se for um banco de dados) para selecionar os funcionários, tipo

    /* Tabela de Funcionários
        TABLE: employees
        COLUMNS:
            id (matrícula e PK)
            name (nome completo)
            resignation (data de demissão, se não demitido, NULL
    */
    
    SELECT id, name FROM employees WHERE NOT resignation IS NULL
    
    /* Seleciona apenas os funcionários NÃO demitidos */

    Apenas um exemplo. Ai então você carrega essa query em um DATASET e define ele como DataSource da combobox, e chama o método DataBind() para carregar.

    Friend Function ExecuteQueryOnAdapter(ByRef Conn As System.Data.SqlClient.SqlConnection, ByRef Query As String) As System.Data.DataSet
        Dim command As System.Data.SqlClient.SqlCommand = Conn.CreateCommand()
        command.CommandText = Query
        Dim adapter As System.Data.SqlClient.SqlDataAdapter = New System.Data.SqlClient.SqlDataAdapter(command)
        Dim datas As New System.Data.DataSet
        Try
            adapter.Fill(datas)
            adapter.Dispose()
        Catch
            adapter.Dispose()
            datas = Nothing
        End Try
        Return datas
    End Function

    Use esta função para fazer a query e gerar um DataSet (usa uma SqlConnection já pronto e aberto).

    terça-feira, 17 de junho de 2014 11:30
  • Agora, apenas para fins de responder a sua pergunta: como transferir informações entre Foms.

    Bem, deixe como PUBLIC a declaração dos componentes que você quer acessar. Assim você pode chamar a instância do Form em outro form e acessar o componente (ou ao invés de Public, Friend - para você só acessar dentro do mesmo projeto).

    terça-feira, 17 de junho de 2014 11:31
  • sim e carregado de um Banco de Dados
    quinta-feira, 19 de junho de 2014 16:15
  • Então a função que escrevi deve resolver.

    Se o seu banco de dados for o SqlServer (Express, R2 ou qualquer outra versão). Se for outro banco de dados, o raciocínio é o mesmo, mas você vai precisar das DLLs para conectar com o banco.

    Veja o MySql por exemplo. Basta baixar o DotNet Connector na página do MySql, e adiconar as DLLs como referência no seu projeto (copiando ao compilar para que rode no seu cliente) e trocar as classes para as que estão na biblioteca. Todas as classes se portam da mesma forma, só mudam o nome, ao invés de SqlConnection é MySqlConnection, o mesmo para o SqlCommand (MySqlCommand) e assim por diante - o restante não mudará.

    quinta-feira, 19 de junho de 2014 22:52