| |
| In diesem Forum haben Sie die Möglichkeit Kommentare, Fragen und Verbesserungsvorschläge zu den im vb@rchiv gelisteten Tipps und Workshops zu posten.
Hinweis: Ein neues Thema kann immer nur über die jeweilige Tipps & Tricks bzw. Workshop Seite eröffnet werden! | Fragen zu Tipps & Tricks und Workshops im vb@rchivTipp 1851: DatagridView - Inhalt des DataGridViews in CSV Datei schreiben | | | Autor: cubx | Tipp anzeigenDatum: 12.11.09 04:03 |
| Hallo,
ich versuche vergebens Daten aus einer DataGridView als CSV Datei zu speichern ! Ich habe den obigen Code kopiert und angepasst. Sieht bei mir so aus :
Private Sub SaveToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveToolStripButton.Click
''' <summary>
''' Inhalt des DataGridView in eine durch ein Komma
''' getrennte CSV Datei exportieren
''' </summary>
Dim IsCreated As Boolean = ExportDataGridContentToCSVFile(Filename)
Select Case IsCreated
Case True
MessageBox.Show(IsCreated.ToString() & _
" [Datei wurde angelegt]", "Info")
Case Else
MessageBox.Show(IsCreated.ToString() & _
" [Datei konnte nicht angelegt werden]", "Info")
End Select
End Sub
Private Function ExportDataGridContentToCSVFile( _
ByVal Filename As String) As Boolean
Const COLUMN_SEPERATOR As String = ","
' Die Variable Created übernimmt den Kontrollwert,
' ob die Datei angelegt wurde.
Dim Created As Boolean = False
' Fehlerüberwachung einschalten
Try
' StreamWriter initialisieren
Using sw As IO.StreamWriter = New IO.StreamWriter( _
Filename, False, System.Text.Encoding.Unicode)
' Spalten anlegen
For n As Integer = 0 To Count
sw.Write(DataTable1DataGridView.Columns(n))
If (n < Count) Then
sw.Write(COLUMN_SEPERATOR)
End If
Next
' Neue Zeile schreiben und...
sw.Write(sw.NewLine())
' ... den Inhalt des Grids in eine Komma
' getrennte Datei speichern.
For Each dr As DataRow In DataTable1DataGridView.Rows()
For n As Integer = 0 To Count
If Not Convert.IsDBNull(dr(n)) Then
sw.Write(dr(n).ToString())
End If
If (n < Count) Then
sw.Write(COLUMN_SEPERATOR)
End If
Next
' Neue Zeile anlegen.
sw.Write(sw.NewLine())
Next
End Using
' Wurde die Datei angelegt wird die Kontrollvariable
' Created mit True initialisiert
If IO.File.Exists(Filename) Then Created = True
Catch ex As IO.IOException
' Eventuell auftretenden Fehler abfangen
MessageBox.Show(ex.Message(), "Info - IOException")
Catch ex As Exception
MessageBox.Show(ex.Message(), "Info - Exception")
End Try
' Funktionsrückgabe
Return Created
End Function
''' <summary>
''' Anzahl der in der Tabelle vorhanden Spalten ermitteln.
''' </summary>
Private ReadOnly Property Count() As Integer
Get
Return DataTable1DataGridView.Columns.Count - 1
End Get
End Property
''' <summary>
''' Testpfad in dem die CSV Datei gespeichert wird.
''' </summary>
Private ReadOnly Property Filename() As String
Get
Return IO.Path.Combine(Application.StartupPath, ".csv")
End Get
End Property
Nun bekomme ich beim Versuch die Daten zu speichern immer folgende Fehlermeldung :
Unable to cast object of type 'System.Windows.Forms.DataGridView' to type' System.Data.DataRow'.
Kann mir der Verfasser von dem Code oder irgend jemand anderes bitte helfen, weiss nicht wie ich diesen Fehler beseitigen kann, bzw. die Daten als CSV Datei speichern kann. Wie kann ich einen individuellen Pfad angeben ? Vielen Dank
| |
| Sie sind nicht angemeldet! Um einen neuen Beitrag schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevEingabe 3.0
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|