Es tut mir leid, wenn diese Frage eine Wiederholung ist. Ich habe eine System.Object Variable, wo ich Ergebnisse für eine Select-Abfrage speichern. Ich muss die Ergebnisse in eine flache Datei ausgeben, um sie weiter zu verarbeiten. Ich habe das folgende Stück Code, das für einige Sekunden funktioniert und dann den Systemaufruffehler auslöst. Können Sie mir bitte keine Änderungen an dieser vorschlagen oder wenn ich etwas tue, falsch:Geben Sie den System.Object-Variablenwert in SSD in eine flache Datei aus
Public Sub Main()
Dim x As New OleDb.OleDbDataAdapter
Dim dt As New DataTable
Dim str As String = vbNullString
If System.IO.File.Exists("D:\BKP\AD.txt") = False Then
System.IO.File.Create("D:\BKP\AD.txt")
End If
'MessageBox.Show("Hello")
Dim i As Int32
x.Fill(dt, Dts.Variables("User::LDAPResultSet").Value)
i = dt.Rows.Count
For j As Int32 = 0 To i - 1
str = str & Join(dt.Rows.Item(j).ItemArray(), ",") & vbCrLf
Next
Dim objWriter As New System.IO.StreamWriter("D:\BKP\AD.txt")
objWriter.Write(str)
objWriter.Close()
End Sub
End Class
Gibt es einen besseren Weg, dies zu schreiben, oder wenn es alternative ein Codestück, um zu versuchen und ich möchte, dass. Vielen Dank für Ihre Zeit.
1) Sie brauchen nicht die Datei zu erstellen: die Stream dies tun wird, falls erforderlich, sonst wird es eine vorhandene Datei überschreiben . 2) 'String.Join (Trennzeichen, Werte)' - Sie haben das Trennzeichen als zweites Argument. 3) Sie sollten 'objWriter.Dispose()' auch aufrufen, wenn Sie damit fertig sind. –
Danke für die Erklärung. Für Ihren 2. Punkt (String.Join (Trennzeichen, Werte) - Sie haben das Trennzeichen als zweites Argument) Wie soll ich meinen Code ändern? – rvphx
Ich habe eine Antwort gegeben, die diese Punkte hoffentlich anspricht. Es wäre wahrscheinlich hilfreich gewesen, wenn Sie die Details des Fehlers angegeben hätten - wenn Ihnen etwas mehr als "Systemaufruffehler" gegeben wurde. –