2017-12-30 42 views
1

아래 코드에서 공백이있는 특정 필드 "사용자 이름"에 대한 Excel 파일을 쿼리하려고합니다 (= ''). 그러나 아무것도 데이터 어댑터로 반환되지 않습니다. WHERE 절은 NOT LIKE 'thistext%'을 지정하면 데이터를 반환하지만 다시 공백을 생략합니다. 절을 더 잘 코딩 할 수있는 방법이 있습니까?WHERE 절이 공백 값으로 작동하지 않습니다.

필자는 필드가 비어 있고 DB NULL (또는 값으로 채워짐)로 변환해야하는 경우 문제가 있음을 읽었습니다.

$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() 

답변

2

공백과 널을 대신 ​​사용하십시오.

Select * from [$strSheetName] where [Username] = '' OR [USERNAME] IS NULL 

이 자체는 기술적으로 PowerShell 문제가 아니므로 다른 스프레드 시트 및 데이터베이스에서 이와 동일한 문제가 발생할 수 있습니다.

관련 문제