Die Operation '=' kann nicht an System.String und System.Int32 durchgeführt werden.

  • Hallo Zusammen,

    meine Verwirrung ist wiedermal ziemlich groß. Folgendes Problem:

    Ich möchte aus einer Excel- Datei Daten importieren ohne Excel selbst zu öffnen. Dazu habe ich die Ausgangsdaten als *.xml Dateien gespeichert, um dann mithilfe des Excel-XML-Schemas wieder auf den Inhalt zugreifen zu können. Soweit so gut, dazu habe ich zwei Funktionen gesschrieben:

    Wie man erkennen kann werden alle Werte von mir als String behandelt. Das hat den Hintergrund das die Werte in den Spalten der Ausgangsdaten unterschiedliche Datentypen haben.

    Das Problem taucht nun auf wenn ich versuche auf die Reihen eines der Datasets das aus der 'OpenExcelXmlFile'- Funktion zurückgegeben wird einen Filter anzuwenden:

    Code
    t_VacFile = OpenExcelXmlFile(My.Resources.VacFilePath, t_VacFilesNames(0)) 
    Dim query = From table As DataTable In t_VacFile.Tables Where table.TableName Like "*-*" 
    Dim s_RowFilter As String = t_Table.Columns(189).ColumnName & "= " & p_PersonNo & "" 
    t_Rows = t_Table.Select(s_RowFilter)

    Ich erhalte dann die überaus informative und vielsagende Fehlermeldung: 'Die Operation '=' kann nicht an System.String und System.Int32 durchgeführt werden.'

    Wie gesagt habe ich absichtlich alle Werte als String behandelt um solche Fehler vorzubeugen. Kann mir einer Von Euch helfen und findet den Denkfehler?

    Ich hab's schon mit diversen Anführungszeichenkombinationen versucht: F189='1400600' oder F189="1400600" oder "F189=1400600" oder "F189='1400600'" .

    Zu erwähnen ist vielleicht noch das wenn ich im Direktfenster den Wert manuell ändere und einfache oder doppelte Anführungszeichen vor und hinter dem Wert einsetze dann klappst!

    Wenn ich das Programmgesteuert mache kommt wieder die Fehlermeldung. Auch interessant ist, in der Datei sind zwei Arbeitsblätter die abgefragt werden, bei Nummer eins klappst, bei Nummer zwei dann nicht mehr. Beide werden aber über die selbe Funktion importiert.