2014-10-01 55 views
0

我想根據是/否字段更新我的訪問數據庫。 我想使用的字符串是:基於WHERE的訪問是/否字段

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)" 

當我將消除WHERE部分,還是希望像另一個字段更新:

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

然後它完美地工作。

任何想法爲什麼? 順便說一句,我也試過:在線='假',但沒有運氣。

+0

什麼樣的數據類型的具有「在線」 -column?也許你可以嘗試:0而不是'0' – Cadburry 2014-10-01 08:42:57

回答

1

如果「在線」是一個布爾嘗試:

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

+0

哇,這很簡單...但我覺得很奇怪,但是我們需要''來設置一些東西,但不能用於WHERE函數。 感謝您的快速回復,我會爲您投票,但我沒有足夠的積分來完成。 – GertDeWilde 2014-10-01 08:47:03

+0

@GetDeWilde - 如果這個答案有助於你plz只是標記爲「解決方案」;) - thx – Cadburry 2014-10-01 08:49:22

+0

完成! 我會投票給你,但太少分! 無論哪種方式,再次感謝! – GertDeWilde 2014-10-01 08:55:39