2017-12-30 51 views
1

Im folgenden Code versuche ich eine Excel-Datei für ein bestimmtes Feld "Benutzername" abzufragen, wo es Leerzeichen() gibt. Es wird jedoch nichts an den Datenadapter zurückgegeben. Die WHERE-Klausel gibt beispielsweise Daten zurück, wenn ich eine NOT LIKE 'thistext%' festlege, aber wieder Leerzeichen auslasse. Gibt es eine Möglichkeit, die Klausel besser zu kodieren?WHERE-Klausel arbeitet nicht mit leeren Werten

Ich habe gelesen, es gibt ein Problem, wenn Felder leer sind und in DB NULL konvertiert werden müssen (oder mit einem Wert aufgefüllt) unsicher, wie es geht.

$connection.ConnectionString = $connectstring 
$connection.Open() 
$objOleDbCommand.Connection = $connection 
$objOleDbCommand.CommandText = "SELECT * FROM [$strSheetName] WHERE [Username] = ''" 

$objOleDbAdapter.SelectCommand = $objOleDbCommand 

$objOleDbAdapter.Fill($objDataTable) 

$objDataTable | Export-Csv "C:\output\MyData_$dateandtime.csv" -NoTypeInformation 

$connection.Close() 

Antwort

2

Versuchen Sie dies stattdessen, um Leerzeichen und Nullen abzudecken.

Beachten Sie, dass dies an sich kein Powershell-Problem ist. Sie könnten das gleiche Problem mit anderen Tabellen und Datenbanken haben.

Verwandte Themen