2013-05-31 59 views
2

我在C#中創建了一個程序,現在我想更新我的Access數據庫中的布爾值。該布爾值將始終更新爲false。我已經嘗試了一切,沒有改變我的價值。請幫忙。C#更新Access數據庫中的布爾值

這裏是我的代碼:

的[在郵件]列是我的布爾值。我已經在Access中試過這個查詢,它在那裏完美的工作。

 String query = "UPDATE Ontwikkeldossier SET Ontwikkeldossier.[In mail] = @fals WHERE (((Ontwikkeldossier.[OntwikkeldossierID])[email protected]));"; 
     using(OleDbConnection conn = new OleDbConnection(connstring)) 
     { 
      conn.Open(); 
      OleDbCommand cmd = new OleDbCommand(query, conn); 
      cmd.Parameters.Add("@fals", OleDbType.Boolean, 1, "[In mail]").Value = false; 
      cmd.Parameters.Add("@ontwikkeldossierid", OleDbType.Numeric).Value = Convert.ToInt32(newrow.Cells[0].Value.ToString()); 
      cmd.ExecuteNonQuery(); 
     } 

在此先感謝。

+1

如果你希望它是始終爲假,那麼爲什麼把它作爲一個參數,只需將其設置爲在查詢 – V4Vendetta

+0

假的,因爲我已經試過了,並沒有奏效 –

+0

是價值在@fals = false或0?你需要傳遞0來工作嗎? –

回答

0

對於它的價值,我只是測試下面的代碼,它適用於我:

using (var conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\__tmp\testData.accdb;")) 
{ 
    conn.Open(); 
    using (var cmd = new OleDbCommand(
      "UPDATE Ontwikkeldossier SET [In mail]=? WHERE OntwikkeldossierID=?", 
      conn)) 
    { 
     cmd.Parameters.AddWithValue("?", false); 
     cmd.Parameters.AddWithValue("?", 1); 
     cmd.ExecuteNonQuery(); 
    } 
    conn.Close(); 
} 
+0

非常感謝,它的作品! –

0

應該這樣:

cmd.Parameters.Add("@fals", OleDbType.Boolean, 1, "[In mail]").Value = false; 

相反是:

cmd.Parameters.Add("@fals", OleDbType.Boolean).Value = false; //or zero, since it's an object, the DB might care... 

稿源的問題?如果你提供的價值,你爲什麼想要一個價值來源?

當然,因爲它是總是虛假適合你,你可以簡單地更改查詢,並完全消除參數:

String query = "UPDATE Ontwikkeldossier SET Ontwikkeldossier.[In mail] = 0 WHERE (((Ontwikkeldossier.[OntwikkeldossierID])[email protected]));"; 
+0

Stil不適用於我,我應該把cmd.parameters.add(「@ fals」,OleDbType.Boolean)放在後面? –

+0

是布爾類型數據庫中的字段?這不是一個整數被_used_作爲布爾值,對吧? – DonBoitnott

+0

在訪問它的一個是/否字段 –

1
updateCmd.Parameters.Add("@3", OleDbType.Boolean).Value = "true"; 

這個工作對我來說!我在Access中有「是/否」欄。 Update命令是:

OleDbCommand updateCmd = new OleDbCommand("UPDATE email SET server = @1, port = @2, ssl = @3, utilizator = @4, parola = @5, subiect = @6, email = @7 WHERE ID = @8", connection);