Jump to content
Querendo_ser_Nerd

Importar e gravar BD com C#

Recommended Posts

Bom dia , 

 

Pessoal, realizei diversas pesquisas em Fórum e Artigos, meu caso seria, criei uma aplicação na qual realiza a importação de arquivo em XLS em um DataGridView , está carregando a informação a principio em uma coluna (Duvida as colunas no Excel algumas contem sinais e espaço como "Cód. Cliente" como faço select * from [plan1$] para retornar apenas pela posição da coluna ex. select [A1] from [plan1$] ) , certo , carreguei no DataGrid, creei um botão para carregar as informações do data grid para o BD Oracle, passei toda a configuração conexão e realizei o INSERT , mas não popula com as informações do grid na tabela, apenas quando no INSERT ...Values (1) por exemplo o mesmo inseri o valor na tabela no banco. Já realizei a depuração mas não consigo. Sou novo nessa linguagem. Obg pela Ajuda.

 

using System;
using System.Data;
using System.Data.OleDb; // intregração Excel
using System.Data.OracleClient;
using System.Windows.Forms;


namespace WindowsFormsLog
{

    public partial class Form4 : Form
    {
        
        public Form4()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            if(openFileDialog.ShowDialog()== System.Windows.Forms.DialogResult.OK)
            {
                this.textBox1.Text = openFileDialog.FileName;
            }
        }

       

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
           
        }

        public void button2_Click_1(object sender, EventArgs e)
        { 
            string PathCpnn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + textBox1.Text + ";Extended Properties='Excel 12.0 Xml;HDR=YES;IMEX=1';";
            OleDbConnection conn = new OleDbConnection(PathCpnn);

            //LINQ c#
             OleDbDataAdapter myDbDataAdapter = new OleDbDataAdapter("Select *  from [Plan1$]", conn); // planilha deve conter o nome Plan1

            DataTable dt = new DataTable(); // armazena dado 
              myDbDataAdapter.Fill(dt);

              dataGridView1.DataSource = dt;
            dataGridView1.Columns[0].HeaderText = "NROPEDCLIENTE"; //alterando nome das colunas 
            //  dataGridView1.Columns[1].HeaderText = "DTAINCLUSAO";
        

        }

   
        private void Form4_Load(object sender, EventArgs e)
        {

        }

        public void button3_Click(object sender, EventArgs e)
        {
            string OracleConn = @"Data Source = ok; User ID =ok ; Password = ok; Unicode = True";
            OracleConnection conexao = new OracleConnection(OracleConn);
            
            try
            {
              
                if (dataGridView1.Rows.Count > 1)
                {

                    for (int i = 1; i <= dataGridView1.Rows.Count ; i++)//-1
                    {
                        int dataGridView1 = Convert.ToInt32(this.dataGridView1.Rows[i].Cells[0].Value);


                        conexao.Open();
                        OracleCommand comando = new OracleCommand ("insert into pedido values(@NROPEDCLIENTE)", conexao);
   

                       comando.Parameters.AddWithValue("NROPEDCLIENTE", dataGridView1);
                   
                        comando.ExecuteNonQuery();
                        MessageBox.Show("Insert");
                        conexao.Close();
                    }
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Erro ao inserir"); // Sempre finaliza aqui depuração
            }
            


        }

      
        }
    }


    

Share this post


Link to post
Share on other sites

Tira o TRAY pra ter certeza de onde esta ocorrendo o erro.

 

Ou coloca Console.WriteLine("texto");

entre os comandos pra ver até onde ele vai

 

falo isto porque o problema pode ser outro e ta procurando no lugar errado

 

outra opção é colocar o tray só no 

comando.ExecuteNonQuery();

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Pedro Vinicius Miguel Dias
      Pessoal, estou estudando o Banco de Dados Oracle e estou tendo um problema pra criar uma nova conexão.
      Durante o curso, o instrutor pede que eu crie duas conexoes, a TESTE com a senha: teste e a PRATICA com a senha :pratica... cada uma com uma senha e etc e elas funcionam.
      Eu por minha conta quis criar outra conexão com outro nome e outra senha, Ex. (User TESTE2 e senha: teste2) e ao testar, o Banco não conecta. Erro ORA-01017.
       
      Alguém consegue me ajudar?
    • By Matsuura
      Estou tentando criar o usuário o Scott, e na internet encontro bastante tutoriais para instalação do HR, para o scott dois que me referenciei foram:
      https://www.profissionaloracle.com.br/swillians/forums/topic/usuario-scott-tiger-banco-oracle-10g-express-edition-xe/
      https://docs.oracle.com/database/121/COMSC/installation.htm#COMSC00007
       
      no primeiro link que tentei seguir não encontrei após a intalação o arquivo "demobld.sql"estou enviando a imagem com nome "sql1" e "sql2" que mostram a minha tentativa de instalação, com as mensagens de erros que me retornaram, no segundo link mostra as instalações de schemas, mas não mostra especificamente o Scott. 
      Espero que possam me ajudar, estou a mais de duas semanas tentando sem exito.


    • By NaPraia
      Buenas,
       
      alguém já gerou arquivo em pdf?
       
      eu já usei utl_file e text_io para gerar excel mas para pdf não sei se dá, sabem?
      tenho pesquisado e falam do BI Publisher, já usaram?
    • By Mvc
      Olá,
      Gostaria de fazer uma query mas o retorno ou vem ou não vem dados. Vou citar exemplos.
       
      Me ajudem PF se o melhor caso é union ou outro?
       
      1) Tabela 1 e tabela 2 com campos distintos e um campo em comum com Join no campo card.
      Resultado: No meu select qdo tem dados nas 2 tabelas então retornam todos em comum em uma única linha.
       
      Tabela 1(id, card)
      1, xxx
      2, yyy
      3, zzz
      Tabela 2 (id, card, fraude)
      1, xxx, sim 
      2, yyy, sim
      3, zzz, pendente
       
      Select a.id, a.card, b.card, b.fraude
      from t1 a,t2 b
      where  a.card=b.card;
       
      Retorno:
      Id,Card,Card,fraude
      1, xxx,xxx,sim
      2, yyy,yyy,sim
      3, zzz,zzz,pendente
       
      O problema é qdo na tabela 2 não tem o dado:
      2)Tabela 1 e tabela 2 com campos distintos e um campo em comum com Join no campo card.
      Resultado: No meu select qdo tem dados na tabela 1 e não tiver dado na tabela 2 então retornam linha que só tem na tabela 1.
       
       
      Tabela 1(id, card)
      1, xxx
      2, yyy
      3, zzz
      4,xyz
       
      Tabela 2 (id, card, fraude)
      1, xxx, sim 
      2, yyy, sim
      3, zzz, pendente
       
      Select a.id, a.card, b.card, b.fraude
      from t1 a,t2 b
      where  a.card=b.card;
       
      Retorno:
      Id,Card,Card,fraude
      Nenhuma linha
      Ou não estou certo, retorna igual ao exemplo1:
      1, xxx,xxx,sim
      2, yyy,yyy,sim
      3, zzz,zzz,pendente
       
      Pergunto, neste exemplo 2 como faço pra retornar somente todas as linhas e se não tiver a linha na tabela 2 ficar com estes campos null? 
       
      Desta forma;
       
      Retorno:
      Id,Card,Card,fraude
      1, xxx,xxx,sim
      2, yyy,yyy,sim
      3, zzz,zzz,pendente
      4,xyz,null,null
      Ou no lugar de null, ficar vazia as colunas REF a tabela 2.
       
      Na vdd são exemplos, mas a qtd de Join é mais complexos
      Muito obrigado!!!!
       
       
       
       
    • By NaPraia
      buenas
       
      no sistema eu tenho uma tabela A com um campo que é do tipo NUMBER
      um outro sistema, tem uma tabela B que se relaciona com esse campo da tabela A, é que é do tipo NUMBER(19,2)
      Se relacionam corretamente mas não foi possível criar a constraint de FK
       
      não estou pensando em alter table pois pode gerar um caos no sistema
       
      verificar por trigger se já existe?
       
      obrigado
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.