mssql > cvs

Status
Niet open voor verdere reacties.

bn2vs

Terugkerende gebruiker
Lid geworden
18 aug 2007
Berichten
1.705
mssql > csv

Hey,

Ik wil data vanuit een mssql db converteren naar een csv bestand, is dit mogrlijk, zoja hoe?

Alvast bedankt :)
 
Laatst bewerkt:
Ja, dat is mogelijk.

Dat doe je met een feature in MSSQL: DTS. Data Transformation Services.

als je er niet uitkomt hoor ik het wel.

HTH:D

btw; wel een beetje vreemde vraag op het VB forum??
 
Hey,

Ik wil die convertie doen met een .Net applicatie. Niet via ms sql server zelf.

Dit probleem is ondertussen trouwens al opgelost geraakt met deze code (dit is oude versie met fouten!)

Code:
    Public Sub ExportToCSV(ByVal dbLocation As String, _
                           ByVal columnNames() As String, _
                           ByVal outputFile As String, _
                           Optional ByVal delimeter As Char = ";"c, _
                           Optional ByVal writeHeaders As Boolean = True)
        Dim sqlQuery, csvRow As String
        Dim sqlCmd As New SqlCommand
        Dim reader As SqlDataReader
        Dim dataSchema As DataTable
        Dim writer As StreamWriter

        dbConnection = New SqlConnection("server=(local);database=Test_CSV_impex;Trusted_Connection=True;")
        dbConnection.Open()

        sqlQuery = "select * from " & columnNames(0)
        sqlCmd = New SqlCommand(sqlQuery, dbConnection)

        reader = sqlCmd.ExecuteReader
        dataSchema = reader.GetSchemaTable

        writer = New StreamWriter(outputFile, False, Me.CsvEncoding)

        If writeHeaders Then
            writer.WriteLine(GetColNames(dataSchema, delimeter))
        End If

        While reader.Read()
            csvRow = ""
            For Each field As String In reader
                csvRow &= field & delimeter
            Next
            writer.WriteLine(csvRow.TrimEnd(delimeter))
        End While

        writer.Close()
        dbConnection.Close()
    End Sub

    Private Function GetColNames(ByVal dataSchema As DataTable, _
                                 ByVal delimeter As Char) As String
        GetColNames = ""
        For rowNr As Int32 = 0 To dataSchema.Rows.Count
            GetColNames &= dataSchema.Rows(rowNr)(0).ToString & delimeter
        Next
        Return GetColNames.TrimEnd(delimeter)
    End Function
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan