| |

VB.NET - FortgeschritteneBindingSource meldet " Objekte ... müssen alle denselben Typ haben" | |  | Autor: Schudi | Datum: 30.12.22 20:26 |
| Moin,
Ich verzweifele gerade an folgendem Problem:
Ich habe ein einfaches Projekt mit einem DataSet mit einer DataTable und der entsprechenden Bindingsource.
Die DataTable habe ich in der IDE angelegt und durch Ziehen aus "Datenquellen" auf die Form das entsprechende DGV angelegt.
Nun möchte ich Daten importieren und habe dazu folgenden Code geschrieben, der auf einem Beispiel aus Microsoft / Learn stammt:
Imports System.ComponentModel
Public Class frmKundendaten
Public ImportZeile As String()
Private Sub ImportKundencsvToolStripMenuItem_Click(sender As Object, e As _
EventArgs) Handles
ImportKundencsvToolStripMenuItem.Click
If MessageBox.Show("Beim Import werden alle vorhandenen Daten gelöscht bzw." & _
"durch die importierten Daten ersetzt." & vbLf & vbLf _
& "Import wirklich starten?", "Hinweis", MessageBoxButtons.OKCancel, _
MessageBoxIcon.Question) = DialogResult.OK Then
Using OfdImport As New OpenFileDialog With {
.DefaultExt = "*.csv",
.FileName = "Kunden.csv",
.AddExtension = True,
.ValidateNames = True,
.Multiselect = False,
.ReadOnlyChecked = True,
.CheckFileExists = True,
.Filter = "CSV-Dateien|*.CSV|All files (*.*)|*.*"
}
If OfdImport.ShowDialog = DialogResult.OK Then
Using MyReader As New FileIO.TextFieldParser(OfdImport.FileName, _
System.Text.Encoding.Default)
MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters(";")
ImportZeile = Nothing
Try
'Kopfzeile vorlesen
ImportZeile = MyReader.ReadFields()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
While Not MyReader.EndOfData
Try
ImportZeile = MyReader.ReadFields()
If ImportZeile(0) IsNot "" Then
Application.DoEvents()
DTKundenBindingSource.AddNew()
End If
Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
MsgBox("Line " & ex.Message & "is not valid and will be" & _
"skipped.")
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End While
End Using
MessageBox.Show("Kundendatenimport abgeschlossen", "Hinweis", _
MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End Using
End If
End Sub
Private Sub DTKundenBindingSource_AddingNew(sender As Object, e As _
AddingNewEventArgs) Handles DTKundenBindingSource.AddingNew
e.NewObject = Kunde.CreateKunde()
End Sub
End Class
Public Class Kunde
Private KdNr As Int32 = 0
Private KdName As String = String.Empty
Private KdLogin As String = String.Empty
Private KdPw As String = String.Empty
Private KdGetBE As Boolean = False
Private KdSendBR As Boolean = False
Private KdSendOK As Boolean = False
Private KDSendPL As Boolean = False
Private KDSendPLF As Boolean = False
Private KDSendKdPL As Boolean = False
Private KDSendKdPLF As Boolean = False
Private Sub New()
KdNr = CType(frmKundendaten.ImportZeile(0), Int32)
KdName = frmKundendaten.ImportZeile(1)
KdLogin = frmKundendaten.ImportZeile(2)
KdPw = frmKundendaten.ImportZeile(3)
If frmKundendaten.ImportZeile(5) = "-1" Then
KdGetBE = True
End If
If frmKundendaten.ImportZeile(6) = "-1" Then
KdSendBR = True
End If
If frmKundendaten.ImportZeile(7) = "-1" Then
KdSendOK = True
End If
If frmKundendaten.ImportZeile(8) = "-1" Then
KDSendPL = True
End If
If frmKundendaten.ImportZeile(9) = "-1" Then
KDSendPLF = True
End If
If frmKundendaten.ImportZeile(10) = "-1" Then
KDSendKdPL = True
End If
If frmKundendaten.ImportZeile(11) = "-1" Then
KDSendKdPLF = True
End If
End Sub
Public Shared Function CreateKunde() As Kunde
Return New Kunde()
End Function
End Class Für jeden Datensatz, der aus der Importdatei importiert werden soll, kommt die Meldung:
Objekte, die zur Liste einer BindingSource hinzugefügt werden, müssen alle _
denselben Typ haben. Die Felder der Klasse "Kunde" entsprechen den Feldern der DataTable "DTKunden". Das habe ich mehrfach kontrolliert.
Was mache ich falsch? Stehe total auf dem Schlauch.
Herzlichen Dank. |  |
 BindingSource meldet " Objekte ... müssen alle denselben Typ... | 628 | Schudi | 30.12.22 20:26 |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevAniGif (VB/VBA) 
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) 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-2025 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
|
|