Как записать в текстовый файл в формате с разделителями трубы из SQL Server / ASP.Net? - PullRequest
0 голосов
/ 19 марта 2010

У меня есть текстовый файл, который необходимо постоянно обновлять (с регулярными интервалами).

Все, что мне нужно, это синтаксис и, возможно, некоторый код, который выводит данные из базы данных SQL Server с использованием ASP.Net. Код, который у меня пока есть:

<%@ 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" />

С PHP это бриз, но с .Net я понятия не имею. Если бы вы могли помочь мне с подключением к базе данных и , как записать данные в формате с разделителями канала в файл Output.txt , это было бы здорово. Спасибо, ребята!

Ответы [ 2 ]

1 голос
/ 19 марта 2010

Я бы начал с того, что хотя бы поместил этот код в файл с выделенным кодом, чтобы ваша страница хотя бы следовала принципу наименьшего удивления.

Самый простой способ записать материал в файл - это использовать метод File.WriteAllText (при условии, что ваше приложение имеет соответствующие разрешения для файловой системы).

Вы можете получить доступ к базе данных с помощью класса SqlConnection и выполнять любые необходимые команды с помощью SqlCommand . Получив данные из базы данных, просто превратите их в массив (при условии, что данных не так много) и вызовите String.Join метод, подобный String.Join("|", yourData).

0 голосов
/ 23 марта 2010
  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)
...