Ir para conteúdo

Arquivado

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

cintiadel

[Resolvido] Gerando arquivo txt com resultado da busca

Recommended Posts

Bom Dia!

Estou precisando gerar um arquivo txt de acordo com o resultado de uma busca, e quando gerado o arquivo preciso mudar o status na tabela, será que alguém pode me ajudar como faço isso???

Mas uma vez obrigada desde já

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua dúvida esta onde? Já começou o código?

 

Abraços...

não faço idéia de como começar

a pessoa pode fazer uma busca por tipo, por periodo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua dúvida esta onde? Já começou o código?

 

Abraços...

minha dúvida começa em onde eu monto o select, e como?

eu tenho dois text box onde eu posso digitar um periodo, ou seja duas datas (preciso validar isso tbm) e um outro onde digito o tipo.

Com o resultado dessa busca eu gero o arquivo txt em uma pasta, e ao ser gerado esse arquivo preciso atualizar o status do banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra começar seu código: http://www.macoratti.net/aspn_txt1.htm

 

Abraços...

eu comecei a montar o código, mas como disse n sei onde colocar o select, para que ele gere o arquivo com esses dados:

 

Default.aspx

<form id="form1" runat="server">
		<table align="center" cellspacing="1" class="style1">
				<tr>
					<td style="text-align: left">
							Período:</td>
					<td style="text-align: left" class="style2">
							<asp:TextBox ID="tox_periodo_inicial" runat="server" style="text-align: left"></asp:TextBox>
							<cc1:MaskedEditExtender ID="tox_periodo_inicial_MaskedEditExtender" 
								runat="server" CultureAMPMPlaceholder="" CultureCurrencySymbolPlaceholder="" 
								CultureDateFormat="" CultureDatePlaceholder="" CultureDecimalPlaceholder="" 
								CultureThousandsPlaceholder="" CultureTimePlaceholder="" Enabled="True" 
								Mask="99/99/9999" MaskType="Date" TargetControlID="tox_periodo_inicial">
							</cc1:MaskedEditExtender>
							<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="tox_periodo_inicial" 
							Display="Dynamic" ErrorMessage="Data Inválida." Font-Names="Verdana" Font-Size="X-Small" 
							Operator="GreaterThan" Type="Date" ValueToCompare="01/01/1900">
							</asp:CompareValidator>
								</td>
					<td style="text-align: center">
							até</td>
					<td style="text-align: left">
							<asp:TextBox ID="tox_periodo_final" runat="server"></asp:TextBox>
							<cc1:MaskedEditExtender ID="tox_periodo_final_MaskedEditExtender" 
								runat="server" CultureAMPMPlaceholder="" CultureCurrencySymbolPlaceholder="" 
								CultureDateFormat="" CultureDatePlaceholder="" CultureDecimalPlaceholder="" 
								CultureThousandsPlaceholder="" CultureTimePlaceholder="" Enabled="True" 
								Mask="99/99/9999" MaskType="Date" TargetControlID="tox_periodo_final">
							</cc1:MaskedEditExtender>
							<asp:CompareValidator ID="CompareValidator2" runat="server" ControlToValidate="tox_periodo_final" 
							Display="Dynamic" ErrorMessage="Data Inválida." Font-Names="Verdana" Font-Size="X-Small" 
							Operator="GreaterThan" Type="Date" ValueToCompare="01/01/1900">
							</asp:CompareValidator>
								</td>
				</tr>
				<tr>
					<td style="text-align: left">
							Tipo:</td>
					<td style="text-align: left" colspan="3">
							<asp:TextBox ID="tox_tipo" runat="server"></asp:TextBox>
								</td>
				</tr>
				<tr>
					<td style="text-align: center" colspan="4">
							<asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine"></asp:TextBox>
							<asp:SqlDataSource ID="SqlDataSource1" runat="server"></asp:SqlDataSource>
							<asp:ScriptManager ID="ScriptManager1" runat="server">
							</asp:ScriptManager>
							<asp:Button ID="bon_" runat="server" Text="Button" />
								</td>
				</tr>
				<tr>
					<td style="text-align: center" colspan="4">
							 </td>
				</tr>
				</table>
	</form>

Dafault.aspx.vb

Imports System.IO
Imports System.IO.File

Partial Class _Default
	Inherits System.Web.UI.Page
	Public arquivo As String = "C:\pasta\vbnet.txt"

	Protected Sub bon__Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles bon_.Click
		Try
			Dim strm As New StreamWriter(arquivo)
			Try
				strm.WriteLine("Este arquivo foi criado com o VB.NET")
				strm.WriteLine("Revista Fórum Access ")
				strm.WriteLine("Sempre trazendo novidades para você")
			Finally
				strm.Close()
			End Try
		Catch
			TextBox1.Text = Err.Description
		End Try
		TextBox1.Text = "Arquivo criado com sucesso!!!"
	End Sub
End Class

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você terá que colocar seu select no evento do seu botão.

 

Abraços...

mas qual é o comando pra jogar ele dentro do arquivo, ou melhor o resultado dele.

pq no codigo que eu postei ele insere dentro do arquivo o seguinte texto:

"Este arquivo foi criado com o VB.NET

Revista Fórum Access

Sempre trazendo novidades para você"

através do comando strm.WriteLine("")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode usar um DataReader, ae faça um while no seu DataReader e dentro desse while utilize o comando strm.WriteLine.

 

Abraços...

pode me dar um exemplo de while com DataReader e de como chamar ele dentro do strm.Writeline?

O que eu chama dentro das aspas do strm.WriteLine("")?

 

Tentei fazer dessa forma mas ele n está gravando e nem dando erro:

 

fora do botao eu crio o arquivo com a instrução:

Public arquivo As String = "C:\pasta\vbnet.txt"

e no botão o codigo abaixo

Dim conexao As New Data.SqlClient.SqlConnection("caminho do banco")
		Dim cmd As New Data.SqlClient.SqlCommand("Select nome, rg, cpf from tabela", conexao)
		Dim dr As Data.SqlClient.SqlDataReader
	   
		Try
			conexao.Open()
			dr = cmd.ExecuteReader
			While dr.Read()
				Dim strm As New StreamWriter(arquivo)
				Try
					strm.WriteLine(dr("nome").ToString, dr("rg").ToString, dr("cpf").ToString)
				Finally
					strm.Close()
				End Try
			End While
		Catch
			Console.WriteLine("Ocorreu um Erro.")
		Finally
			'dr.Close()
			conexao.Close()
		End Try

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei o código e funcionou, só mudei algumas coisas:

 

Dim conexao As New Data.SqlClient.SqlConnection("caminho do banco")
		Dim cmd As New Data.SqlClient.SqlCommand("Select nome, rg, cpf from tabela", conexao)
		Dim dr As Data.SqlClient.SqlDataReader
		Dim strm As New StreamWriter(arquivo)
	  
		Try
			conexao.Open()
			dr = cmd.ExecuteReader

			While dr.Read()		   
					strm.WriteLine(dr("nome").ToString & "-" & dr("rg").ToString & "-" & dr("cpf").ToString)
			End While
		Catch
			Console.WriteLine("Ocorreu um Erro.")
		Finally
			'dr.Close()
			strm.Close()
			conexao.Close()
		End Try

A sua variábel arquivo esta com caminho certo?

No meu teste no lugar de arquivo coloquei:

Dim strm As New StreamWriter("C:/teste.txt")
E funcionou perfeitamente.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

muito obrigada pela ajuda e paciencia que você sempre tem cmg, agora funcionou.

posso abusar mais um pouco?

1 - gostaria que o nome do arquivo fosse a data atual, já tentei mas n consegui.

2 - que os campos fossem separados por tab para que fique organizado.

3- tenho dois textbox onde eu coloco o periodo pra buscar no banco, mas ao inserir a session na query, ele n me traz

nenhuma linha dentro do arquivo, já testei a query no banco e lá ele me retorna 10 registros, o que pode ser, só alterei isso?

Dim cmd As New Data.SqlClient.SqlCommand("Select nome, email from tabela where data_hora Between '" & Session("tox_periodo_inicial") & "' and '" & Session("tox_periodo_final") & "'", conexao)
será que pode me dar mais um help?

Compartilhar este post


Link para o post
Compartilhar em outros sites

No nome do seu arquivo coloque:

Date.Now.ToShortDateString()
Isso irá trazer a data atual.

 

Para separar seus dados terá que usar espaços em branco, veja como que fica com tag HTML de espaço em branco.

 

No terceiro caso você tem que ver se sua Session tem algum valor, mas se não me engano você já abriu um tópico sobre este assunto, é melhor que seja discutido la para não virar bagunça.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

No nome do seu arquivo coloque:

Date.Now.ToShortDateString()
Isso irá trazer a data atual.

 

Para separar seus dados terá que usar espaços em branco, veja como que fica com tag HTML de espaço em branco.

 

No terceiro caso você tem que ver se sua Session tem algum valor, mas se não me engano você já abriu um tópico sobre este assunto, é melhor que seja discutido la para não virar bagunça.

 

Abraços...

não funcionou não, ele n mostrou a data e sim a string q eu coloquei, o nome do arquivo ficou assim: Date.Now.ToShortDateString().txt

Public arquivo As String = "C:\pasta\Date.Now.ToShortDateString().txt"

tem mais uma coisa que eu já ia me esquecendo depois de gerado o arquivo preciso que ele mude o status somente dos registros selecionados, como posso fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ta errado seu código.

Public arquivo As String = "C:\pasta\" & Date.Now.ToShortDateString() & ".txt"

Abraços...

ele da erro por causa dos separadores, erro:

Não foi possível localizar uma parte do caminho 'C:\pasta\26\11\2008.txt'.

e tem mais uma coisa que eu já ia me esquecendo depois de gerado o arquivo preciso que ele mude o status somente dos registros selecionados, como posso fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Terá que salvar seu arquivo com outro separador, por exemplo:

Public arquivo As String = "C:\pasta\" & Replace(Date.Now.ToShortDateString(), "/", "_") & ".txt"

Não testei o código, mas acho que da certo.

A questão de mudar o status, basta dar um update na sua tabela.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Terá que salvar seu arquivo com outro separador, por exemplo:

Public arquivo As String = "C:\pasta\" & Replace(Date.Now.ToShortDateString(), "/", "_") & ".txt"

Não testei o código, mas acho que da certo.

A questão de mudar o status, basta dar um update na sua tabela.

 

Abraços...

não funcionou não

essa parte do codigo fica sublinhada em azul: Replace(Date.Now.ToShortDateString(), "/", "_")

e clicando em cima aparece: Expression does not produce a value

 

qto ao update acho q n fui clara, a minha dúvida é onde coloca-lo e como fazer para que atualize somente

os registros que foram para o arquivo

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.