繁体   English   中英

VB.Net SQL数据到文本文件

[英]VB.Net sql data to text file

我正在尝试将从sql查询中删除的数据写入Visual Basic 2012中的文本文件中,这是一些代码,我只需要按正确的方向进行操作即可

Imports System.Data.SqlClient
Imports System.IO

Public Class frmResults
    Dim cn As New SqlConnection("Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\bryan\Documents\TeamGFinalProject\BookCollection.MDF;Integrated Security=True;Connect Timeout=30")
    Dim cmd As New SqlCommand
    Dim dr As SqlDataReader
    Dim table As New DataTable("sales")

Private Sub frmResults_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    cmd.Connection = cn
End Sub

Private Sub BtnReport_Click(sender As Object, e As EventArgs) Handles BtnReport.Click
    cn.Open()
    cmd.CommandText = "select * from sales  where ord_date BETWEEN '" & dtpStart.Text & "' AND '" & dtpEnd.Text & "' Order BY ord_date;"

    Using sw As StreamWriter = New StreamWriter("Dates.txt")
        Dim reader As SqlDataReader = cmd.ExecuteReader()

        sw.WriteLine(reader)
        reader.Close()
    End Using

    cn.Close()
End Sub

End Class

从SqlDataReader读取时,您需要读取结果行( SqlDataReader.Read ),对其进行处理,然后继续进行下一条记录,直到获得所需的内容为止。 您可以使用SqlDataReader.GetValues方法立即从行中获取所有列值。

建议:使用参数来构建命令文本( 请参见此处 )。

Private Sub BtnReport_Click(sender As Object, e As EventArgs) Handles BtnReport.Click       
    cn.Open()
    cmd.CommandText = "select * from sales  where ord_date BETWEEN '" & dtpStart.Text & "' AND '" & dtpEnd.Text & "' Order BY ord_date;"

    Using sw As StreamWriter = New StreamWriter("Dates.txt")
        Using reader As SqlDataReader = cmd.ExecuteReader()
            Dim values(reader.FieldCount - 1) As Object

            While reader.Read
                reader.GetValues(values)

                sw.WriteLine(String.Join(vbTab, values))
            End While
        End Using
    End Using

    cn.Close()

你很亲密

SqlDataReader对象在某种程度上类似于StreamReader或其他阅读器对象。 实际上,您需要做的是使用reader对象遍历数据。 在阅读时,字段将填充到阅读器对象中。 然后,您可以将该数据写出。 这是一个简单的工作示例:

While (reader.Read)
   'Get data row by row
   Dim row_data(reader.FieldCount - 1) As String
   Dim i As Integer
   For i = 0 To reader.FieldCount - 1
       row_data(i) = reader(i).ToString
   Next

   'Build a single string (simplistic CSV style)
   String.Join(",",row_data)

   'Write to file
   sw.WriteLine(reader)
End While

这可能不是处理此问题的最有效方法,但是它应该使您对正在发生的事情有一个很好的了解。

您需要遍历结果集并写入文件。

这是一个简单的例子。

如何将数据从sqldatareader流到VB.Net中的文本文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM