none
converter codigo c# para codigo em vb RRS feed

  • Pergunta

  • Boa tarde gente,

    Tenho esse codigo encontrado na internet clarro do Pablo Batista feito em c# FUNCIONA DIREITINHO

     private void Inserir()
            {
                //Instância da conexão onde passo a 
                //ConnectionString 
                var conn = new SqlCeConnection(@"Data Source=|DataDirectory|\Exemplo.sdf");
                //sql que será executado na tabela cliente
                var sql = "INSERT INTO Cliente (Nome, Email, Telefone) " +
                          "VALUES (@Nome, @Email, @Telefone)";
                //instância do comando onde passo
                //o sql e a conexão como parâmetro
                var cmd = new SqlCeCommand(sql, conn);
                //abro a conexão
                conn.Open();

                //percorro o DataGridView
                for (int i = 0; i < dgvClientes.Rows.Count - 1; i++)    // essa linha percorre o gridview até que fique vazio e salva os dados na  banco de dados
                {
                    //limpo os parâmetros
                    cmd.Parameters.Clear();
                    //crio os parâmetro do comando
                    //e passo as linhas do dgvClientes para eles
                    //onde a célula indica a coluna do dgv
                    cmd.Parameters.AddWithValue("@Nome",
                        dgvClientes.Rows[i].Cells[0].Value);
                    cmd.Parameters.AddWithValue("@Email",
                        dgvClientes.Rows[i].Cells[1].Value);
                    cmd.Parameters.AddWithValue("@Telefone",
                        dgvClientes.Rows[i].Cells[2].Value);
                    //executo o comando
                    cmd.ExecuteNonQuery();
                }
                //Fecho conexão
                conn.Close();
            }

    Converti para vb como segue:

     Private Sub Inserir12()
            'Instância da conexão onde passo a 
            'ConnectionString 
            Dim conn = New SqlConnection("Data Source=NASCIMENTO\SQLEXPRESS;Initial Catalog=Aplicativo;Integrated Security=True")
            'sql que será executado na tabela cliente
            Dim sql = "INSERT INTO  Pedidos (Produto,Valor,Quantidade,Total) " + "VALUES (@Produto,@Valor,@Quantidade,@Total)"
            'instância do comando onde passo
            'o sql e a conexão como parâmetro
            Dim cmd = New SqlCommand(sql, conn)
            'abro a conexão
            conn.Open()

            'percorro o DataGridView
            For i As Integer = 0 To GridViewCexta.Rows.Count - 1 ' Essa linha aqui em vb não percorre o gridview, salva um unico registro
                'limpo os parâmetros
                cmd.Parameters.Clear()
                'crio os parâmetro do comando
                'e passo as linhas do dgvClientes para eles
                'onde a célula indica a coluna do dgv
                cmd.Parameters.AddWithValue("@produto", GridViewCexta.Rows(i).Cells(2).Text)  'Aqui não aceita a propriedade value 
                cmd.Parameters.AddWithValue("@quantidade", GridViewCexta.Rows(i).Cells(3).Text) ' como em c# o codigo de cima
                cmd.Parameters.AddWithValue("@Valor", GridViewCexta.Rows(i).Cells(4).Text)
                cmd.Parameters.AddWithValue("@Total", GridViewCexta.Rows(i).Cells(5).Text)
                'executo o comando
                cmd.ExecuteNonQuery()
            Next
            'Fecho conexão
            conn.Close()
        End Sub

    Se alguem poder me ajudar resolver essa parada agradeço muito.

    Estou trabalhando com o vb 2010 banco de dados mysql


    José do Nascimento Lima Vieira


    terça-feira, 9 de fevereiro de 2016 18:24

Respostas

  • Boa tarde.

    Assim como a dica do Natan, existem diversas ferramentas para tais conversões:

    LINK 1

    LINK 2

    LINK 3

    Mas lembre-se de sempre dar uma revisada para verificar se erros não foram gerados com a conversão automática.


    Att., Rafael Simor

    • Sugerido como Resposta SimorC terça-feira, 9 de fevereiro de 2016 19:24
    • Marcado como Resposta Marcos SJ quarta-feira, 10 de fevereiro de 2016 12:42
    terça-feira, 9 de fevereiro de 2016 19:24
  • Boa tarde,

    obrigado pelos links enviados, mas eu resolvi assim

    For i As Integer = 0 To GridViewCexta.Rows.Count - 1 ' Essa linha aqui em vb não percorre o gridview, salva um unico registro
                'limpo os parâmetros
                cmd.Parameters.Clear()
                'crio os parâmetro do comando
                'e passo as linhas do dgvClientes para eles
                'onde a célula indica a coluna do dgv
                cmd.Parameters.AddWithValue("@produto", GridViewCexta.Rows(i).Cells(2).Text)  'Aqui não aceita a propriedade value 
                cmd.Parameters.AddWithValue("@quantidade", GridViewCexta.Rows(i).Cells(3).Text) ' como em c# o codigo de cima
                cmd.Parameters.AddWithValue("@Valor", GridViewCexta.Rows(i).Cells(4).Text)
                cmd.Parameters.AddWithValue("@Total", GridViewCexta.Rows(i).Cells(5).Text)
                'executo o comando
                cmd.ExecuteNonQuery() ' Acrescentei esse código aqui verificando se o gridview está vazio, caso    

    if                                                   "contrario ele volta novamente no gridview e pega os dados e vai salvando

    GridViewCexta.Rows.Count = vbEmpty Then 'até acabar

                

    Return

               

    Else

            Next
            'Fecho conexão
            conn.Close()

    end fi

        End Sub

    Fica aí a dica para quem tiver com essa mesma dúvida.

    Obrigado


               


    José do Nascimento Lima Vieira


    • Editado José do Nascimento quarta-feira, 10 de fevereiro de 2016 21:45
    • Marcado como Resposta Marcos SJ quinta-feira, 11 de fevereiro de 2016 12:01
    quarta-feira, 10 de fevereiro de 2016 21:43

Todas as Respostas

    • Sugerido como Resposta SimorC terça-feira, 9 de fevereiro de 2016 19:24
    terça-feira, 9 de fevereiro de 2016 19:03
  • Boa tarde.

    Assim como a dica do Natan, existem diversas ferramentas para tais conversões:

    LINK 1

    LINK 2

    LINK 3

    Mas lembre-se de sempre dar uma revisada para verificar se erros não foram gerados com a conversão automática.


    Att., Rafael Simor

    • Sugerido como Resposta SimorC terça-feira, 9 de fevereiro de 2016 19:24
    • Marcado como Resposta Marcos SJ quarta-feira, 10 de fevereiro de 2016 12:42
    terça-feira, 9 de fevereiro de 2016 19:24
  • Boa tarde,

    obrigado pelos links enviados, mas eu resolvi assim

    For i As Integer = 0 To GridViewCexta.Rows.Count - 1 ' Essa linha aqui em vb não percorre o gridview, salva um unico registro
                'limpo os parâmetros
                cmd.Parameters.Clear()
                'crio os parâmetro do comando
                'e passo as linhas do dgvClientes para eles
                'onde a célula indica a coluna do dgv
                cmd.Parameters.AddWithValue("@produto", GridViewCexta.Rows(i).Cells(2).Text)  'Aqui não aceita a propriedade value 
                cmd.Parameters.AddWithValue("@quantidade", GridViewCexta.Rows(i).Cells(3).Text) ' como em c# o codigo de cima
                cmd.Parameters.AddWithValue("@Valor", GridViewCexta.Rows(i).Cells(4).Text)
                cmd.Parameters.AddWithValue("@Total", GridViewCexta.Rows(i).Cells(5).Text)
                'executo o comando
                cmd.ExecuteNonQuery() ' Acrescentei esse código aqui verificando se o gridview está vazio, caso    

    if                                                   "contrario ele volta novamente no gridview e pega os dados e vai salvando

    GridViewCexta.Rows.Count = vbEmpty Then 'até acabar

                

    Return

               

    Else

            Next
            'Fecho conexão
            conn.Close()

    end fi

        End Sub

    Fica aí a dica para quem tiver com essa mesma dúvida.

    Obrigado


               


    José do Nascimento Lima Vieira


    • Editado José do Nascimento quarta-feira, 10 de fevereiro de 2016 21:45
    • Marcado como Resposta Marcos SJ quinta-feira, 11 de fevereiro de 2016 12:01
    quarta-feira, 10 de fevereiro de 2016 21:43