Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

André Mailho

Dificuldade em exportar arquivo SQL usando c#

Recommended Posts

ola pessoal, eu sou novo na programação e estou com dificuldades para exportar uma tabela feita em SQL server (2008) utilizando linha de código c#. Eu ja programei para importar o arquivo csv para o sql! convertendo os ; em colunas! agora eu preciso criar um codigo para exportar esta tabela pronta do sql para csv. Pretendo fazer o web form exportação separado do importação. O código de importação é este:

 

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;
using System.IO;

 public partial class projetoArq432 : System.Web.UI.Page
	{
		protected void Page_Load(object sender, EventArgs e)
		{
			String stringConn = "Data Source=PC1;Initial Catalog=base_andre;Persist Security Info=True;User ID=xxx;password=xxxxx";
			SqlConnection conexao = new SqlConnection(stringConn);

			conexao.Open();
			
			StreamReader objReader = new StreamReader(@"C:\data\arquivos\arq432.csv");

			String linha = null;

			String qInsert = "";
			int sql = 0;
			while ((linha = objReader.ReadLine()) != null) 

			 {
			  
			   if (sql == 0)
				{

				   qInsert = "INSERT INTO arq432 (" + linha.Replace(';', ',') + ") VALUES (";
				   sql = 1;
				}
	   
			   else
				{
					String[] coluna = linha.Split(';');
	
				   String querySQL = qInsert + "'" + coluna[0].ToString() + "','" + coluna[1].ToString() + "','" + coluna[2].ToString() + "','" + coluna[3].ToString() + "','" +   coluna[4].ToString() + "','" + coluna[5].ToString() + "','" + coluna[6].ToString() + "','" + coluna[7].ToString() + "','" + coluna[8].ToString() + "','" + coluna[9].ToString() + "','" + coluna[10].ToString() + "','" + coluna[11].ToString() + "','" + coluna[12].ToString() + "','" + coluna[13].ToString() + "','" + coluna[14].ToString() + "','" + coluna[15].ToString() + "','" + coluna[16].ToString() + "','" + coluna[17].ToString() + "','" + coluna[18].ToString() + "','" + coluna[19].ToString() + "','" + coluna[20].ToString() + "','" + coluna[21].ToString() + "','" + coluna[22].ToString() + "','" + coluna[23].ToString() + "','" + coluna[24].ToString() + "','" + coluna[25].ToString() + "','" + coluna[26].ToString() + "','" + coluna[27].ToString() + "')";
		   
				   SqlCommand exeQuery;
				   
				   exeQuery = new SqlCommand(querySQL, conexao);
				   exeQuery.ExecuteNonQuery();
		 
			   }

			 }
			conexao.Close();
		} 
	 
	}

 

Eu preciva exportar as colunas (sao 28 colunas) nesta ordem:

a coluna 26 em primeiro, depois a 23,24,25,18,19,17,15,16,14,13,12,05,27,20,21,22,01,28,03,06,07,08,09,10,02,04,11

 

Abaixo eu abri a conexao com o banco de dados! agora eu preciso ler e exportar a tabelas com as colunas na ordem descrita.

public partial class projetoArq432 : System.Web.UI.Page
	{
		protected void Page_Load(object sender, EventArgs e)
		{
			//PARÂMETROS CONEXÃO COM O BANCO
			String connection = "Data Source=COLDWELL08;Initial Catalog=base_andre; Persist Security Info=True; User ID=sa; password=coldwell";
			SqlConnection conexao = new SqlConnection(connection);
			
			//ABRE A CONEXÃO
			conexao.Open();


		}
	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu pretendo escrever as colunas naquela ordem! coloquei mais este codigo:

 

//ABRE A CONEXÃO

			conexao.Open();

			//SELECT PARA BUSCAR AS INFORMAÇÕES NO BANCO

			String Query = "SELECT BASCALCICMSTRIB, ALIQUOTAICMS, BASCALCICMS, VLICMSPROP, ALIQUOTAIPI, BASCALCIPI, INDCTRIBIPI, VLTOTALITEM,VLDESCITM, VLUNIT, UNID, QUANT, CODPARTPFPJ, VLICMSSUBSTRIB, VLIPI, SITTRIBESTAD, INDCTRIBICMS, MODDOC, INDMOVFISMERC, NUMDOC, NUMITEM, CODMERC, DESCRCOMPL, CODFISCOP, CODNATOPR, SERSUBDOC, DTEMISDOC, CLASFISCMERC FROM ARQ432";

			//EXECUTA A INSTRUÇÃO SQL NO BANCO

			SqlCommand exeQuery = new SqlCommand(Query, conexao);
			
			//RETORNO DAS INFORMAÇÕES EXTRAIDAS NO BANCO

			SqlDataReader Dados = exeQuery.ExecuteReader();

			while (Dados.Read())
			{
	  
			}
			conexao.Close();
		}
	}

agora eu preciso escrever a tabela, com as colunas nesta ordem e com os dados de cada uma! como faço isso? Acho que com esse while fica mais facil.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É entao! eu nao sei o codigo pra exportar o arquivo mesmo! Como eu faço pra organizar as colunas por ponto e virgula e salvar em um arquivo txt organizando as colunas do da quele jeito.

Pensei em alguma coisa assim mas nao ta dando certo!

 

while (Dados.Read ())

{

Dados.GetString(0).Replace("'", ";");

 

 

 

Por favor eu preciso de ajuda! tenho que estregar isso sexta feira.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente algo como:

while (Dados.Read())
{
	  string teste = dr[0].ToString() + ";" + dr[1].ToString() + ";" + dr[2].ToString();
}

Os números são os indices dos seus campos na query, basta adicionar os demais campos.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao quintelab eu tentei isso mas apareceu esse erro:

 

The name 'dr' does not exist in the current context.

 

 

depois disso para escrever as colunas no arquivo eu uso o StreamWriter mesmo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah ta. Faça o seguinte:

//ABRE A CONEXÃO

			conexao.Open();

			//SELECT PARA BUSCAR AS INFORMAÇÕES NO BANCO

			String Query = "SELECT BASCALCICMSTRIB, ALIQUOTAICMS, BASCALCICMS, VLICMSPROP, ALIQUOTAIPI, BASCALCIPI, INDCTRIBIPI, VLTOTALITEM,VLDESCITM, VLUNIT, UNID, QUANT, CODPARTPFPJ, VLICMSSUBSTRIB, VLIPI, SITTRIBESTAD, INDCTRIBICMS, MODDOC, INDMOVFISMERC, NUMDOC, NUMITEM, CODMERC, DESCRCOMPL, CODFISCOP, CODNATOPR, SERSUBDOC, DTEMISDOC, CLASFISCMERC FROM ARQ432";

			//EXECUTA A INSTRUÇÃO SQL NO BANCO

			SqlCommand exeQuery = new SqlCommand(Query, conexao);
			
			//RETORNO DAS INFORMAÇÕES EXTRAIDAS NO BANCO

			SqlDataReader Dados = exeQuery.ExecuteReader();

			if(Dados.Read()){
			{
	  
			}
			conexao.Close();
		}
	}

Tente inverter o while por if.

 

====================================================

Edit.: da uma olhada nesse link: http://www.dotnetraptors.com.br/start/arti...orner/1898.aspx

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.