1
我一直在研究爲什麼我的下面OleDBCommand ExecuteScalar函數不正確地返回正確的數據。與WHERE子句不匹配所有行的ExecuteScalar
query = "SELECT Count(*) FROM NoteTable WHERE SQLMigrationFl <> 'Y'";
command = new OldDbCommand(query, connection);
var remainingNotes = (int)command.ExecuteScalar();
我的連接被預先確定,併成功地使用其他查詢。我的Access數據庫有99條記錄;但是,當我運行上面的代碼時,它只返回10.當我刪除WHERE語句時,它返回所有99;但是,當SQLMigrationFl開始填充'Y'時,這將無濟於事。任何想法爲什麼ExecuteScalar函數沒有返回我期望的結果?
感謝
如果你的'SQLMigrationFl'列可以包含NULL值,那麼你也需要測試這個條件。 WHERE SQLMigrationFl <>'Y''將不匹配'SQLMigrationFl IS NULL'的行。 –
是的,只是改變了我的代碼來檢查空值。如果你想離開這個答案,我會接受它。 你知道爲什麼SQLMigrationFl <>'Y'沒有收到空值嗎? –
任何具有'null'值的測試(除了'IS NULL')都會按設計返回'false'。所以即使null不是'Y',它也不會匹配。 –