none
Loop for RRS feed

  • Pergunta

  • Preciso fazer um loop for no código abaixo, verificando se o dado já existe no BD, se existe não faço Insert.

    Alguém pode me ajudar.

            public void GravarPasta()

            {

                SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["conexao"].ToString());

                connection.Open();

                SqlCommand command = new SqlCommand();

                command.Connection = connection;

                try

                {

                    DirectoryInfo diretorio = new DirectoryInfo("D:\\testeNota\\ARQUIVO_PONTO");

                    FileInfo[] arquivos = diretorio.GetFiles("*.*");

     

                    foreach (FileInfo fileinfo in arquivos)

                    {

                        command.CommandText = string.Format("INSERT INTO FP0000 (C_NOMARQ) VALUES('" + fileinfo.Name + "')");

                        command.ExecuteNonQuery();

                    }

                }

                catch (Exception erro)

                {

     

                    MessageBox.Show(erro.Message);

                }

     

            }

    terça-feira, 11 de outubro de 2011 13:36

Respostas

  • foreach (FileInfo fileinfo in arquivos)

                    {

     command.CommandText = string.Format("SELECT COUNT(*) FROM FP0000 WHERE C_NOMARQ = {0}, "'" + fileinfo.Name + "'");

        

     if ((int)command.ExecuteScalar() == 0)


    {

    command.CommandText = string.Format("INSERT INTO FP0000 (C_NOMARQ) VALUES('" + fileinfo.Name + "')");

     

                        command.ExecuteNonQuery();

    }

                    }

     

    Pelo que eu entendi, isso resolveria seu problema. 




    • Sugerido como Resposta AndesBH terça-feira, 11 de outubro de 2011 16:19
    • Editado AndesBH terça-feira, 11 de outubro de 2011 16:21
    • Marcado como Resposta pandm terça-feira, 11 de outubro de 2011 17:03
    terça-feira, 11 de outubro de 2011 16:19

Todas as Respostas

  • foreach (FileInfo fileinfo in arquivos)

                    {

     command.CommandText = string.Format("SELECT COUNT(*) FROM FP0000 WHERE C_NOMARQ = {0}, "'" + fileinfo.Name + "'");

        

     if ((int)command.ExecuteScalar() == 0)


    {

    command.CommandText = string.Format("INSERT INTO FP0000 (C_NOMARQ) VALUES('" + fileinfo.Name + "')");

     

                        command.ExecuteNonQuery();

    }

                    }

     

    Pelo que eu entendi, isso resolveria seu problema. 




    • Sugerido como Resposta AndesBH terça-feira, 11 de outubro de 2011 16:19
    • Editado AndesBH terça-feira, 11 de outubro de 2011 16:21
    • Marcado como Resposta pandm terça-feira, 11 de outubro de 2011 17:03
    terça-feira, 11 de outubro de 2011 16:19
  • Eu preciso fazer um select e verificar na coluna C_NOMARQ se já existe um dado com o nome carrega no Fileinfo se já existe não gravo e

    vice versa.

    terça-feira, 11 de outubro de 2011 16:51
  • Eu preciso fazer um select e verificar na coluna C_NOMARQ se já existe um dado com o nome carrega no Fileinfo se já existe não gravo e

    vice versa.

    AndesBH!

    Obrigado. Deu certo não tinha entendido direito.

    Eu estava pensando em um loop for, verificando cada linha e em caso de não tiver no BD inserir.

    terça-feira, 11 de outubro de 2011 17:05