Como gravar em um arquivo de texto em formato delimitado do Pipe no SQL Server / asp.net?

StackOverflow https://stackoverflow.com/questions/2475028

Pergunta

Eu tenho um arquivo de texto que precisa ser atualizado constantemente (intervalos regulares).

Tudo o que eu quero é a sintaxe e possivelmente algum código que produz dados de um banco de dados do SQL Server usando asp.net. O código que tenho até agora é:

<%@ Import Namespace="System.IO" %>
<script language="vb" runat="server">
  sub Page_Load(sender as Object, e as EventArgs)
  Dim FILENAME as String = Server.MapPath("Output.txt")

    Dim objStreamWriter as StreamWriter
   ' If Len(Dir$(FILENAME)) > 0 Then Kill(FILENAME)
   objStreamWriter = File.AppendText(FILENAME)

    objStreamWriter.WriteLine("A user viewed this demo at: " & DateTime.Now.ToString())

    objStreamWriter.Close()

    Dim objStreamReader as StreamReader
    objStreamReader = File.OpenText(FILENAME)

    Dim contents as String = objStreamReader.ReadToEnd()

    lblNicerOutput.Text = contents.Replace(vbCrLf, "<br>")

    objStreamReader.Close()
  end sub
</script>

<asp:label runat="server" id="lblNicerOutput" Font-Name="Verdana" />

Com o PHP, é uma brisa, mas com .NET eu não tenho idéia. Se você pudesse me ajudar com a conectividade do banco de dados e Como escrever os dados no formato delimitado de tubos em um arquivo de saída.txt, isso foi incrível. Obrigado rapazes!

Foi útil?

Solução 2

  Dim dr As SqlDataReader

  Dim FILENAME as String = Server.MapPath("Output.txt")

  Dim objStreamWriter as StreamWriter
  objStreamWriter = File.CreateText(FILENAME)

  sqlConn.Open()
   'opening the connection
  myCommand = New SqlCommand("SELECT  id, title, expirydate, creationdate from tbl where tbl.isactive=1 and getdate()<=ExpiryDate order by  creationdate asc", sqlConn)
  'executing the command and assigning it to connection 
  dr = myCommand.ExecuteReader()
  While dr.Read()

      objStreamWriter.WriteLine("{0}|{1}|{2:yyyy-MM-dd}|{3:yyyy-MM-dd}", dr(0),  dr(1), dr(2), dr(3))

  End While
  dr.Close()
  sqlConn.Close()

  objStreamWriter.Close()

  Dim objStreamReader as StreamReader
  objStreamReader = File.OpenText(FILENAME)

Outras dicas

Eu começaria pelo menos colocando esse código em um arquivo de código-behind, para que sua página siga pelo menos o princípio de menos surpresa.

A maneira mais fácil de escrever coisas em um arquivo é usar o File.WriteAllText Método (assumindo que seu aplicativo possui permissões apropriadas para o sistema de arquivos).

Você pode acessar o banco de dados usando o SQLConnection classe e execute quaisquer comandos que você precisa com um SQLCommand. Depois de obter dados de volta do banco de dados, basta transformá -los em uma matriz (supondo que não haja uma quantidade enorme de dados) e ligue String.Join método como assim String.Join("|", yourData).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top