2014-10-01 2 views
0

Я хочу обновить свой доступ db на основе поля Да/Нет. Строки, которую я хочу использовать это:Доступ на основе ГДЕ Да/Нет поле

sqlstr = "UPDATE [Reactie] SET DoubleCheck = '1' WHERE Online = '0'" 

Когда я использую это я получаю следующее сообщение об ошибке:

"System.Data.OleDb.OleDbException (0x80040E07): Data type mismatch in criteria expression.  at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)  at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)  at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)  at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)  at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)  at System.Data.OleDb.OleDbCommand.ExecuteNonQuery()  at Brady_Check_In_Out.Database.reactie(String sector, String type, String checked)" 

Когда я уберу, где часть, или вы хочу обновить на другое поле, как :

sqlstr = "UPDATE [Reactie] SET DoubleCheck = '1' WHERE Sector = 'MG'" 

Тогда он отлично работает.

Любые идеи, почему? Кстати, я также пробовал: WHERE Online = 'False', но не повезло.

+0

какой тип данных имеет «Интернет» -column? возможно, вы можете попробовать: 0 вместо «0» – Cadburry

ответ

1

Если «Интернет» является булевой попытка:

sqlstr = "UPDATE [Reactie] SET DoubleCheck = '1' WHERE Online = 0"

+0

Вау, это было просто ... Мне кажется странным, что нам нужно «установить» что-то, но не для функции WHERE. Спасибо за ваш быстрый ответ, я бы проголосовал за вас, но у меня недостаточно очков, чтобы это сделать. – GertDeWilde

+0

@GetDeWilde - если бы этот ответ помог вам, то plz просто пометить как «Решение»;) - thx – Cadburry

+0

Сделано! Я тоже проголосую, но слишком мало очков! В любом случае, еще раз спасибо! – GertDeWilde

Смежные вопросы