2016-11-30 93 views
-2

我已瀏覽本網站的類似線程,並且沒有任何建議的答案似乎有效。我正在寫一個Java程序,它使用SQL與Access數據庫交互。我已成功連接到數據庫並從中提取信息。不過,我需要對數據庫進行更新和我一直運行到這個錯誤UCAExc ::: 3.0.7用戶缺少特權或找不到對象:SLIPSET

UCAExc ::: 3.0.7用戶缺少特權或找不到對象:SLIPSET

我爲什麼不能成功更新Access數據庫?

下面是代碼相關的更新

String sqlSlip ="UPDATE Slip" + 
       "SET slipOpen = 0 AND boatID =?" + 
       "WHERE slipNumber = ?"; 

PreparedStatement slipUpdate = connection.prepareStatement(sqlSlip); 
slipUpdate.setDouble(1, boatIDdub); 
slipUpdate.setDouble(2, rs.getInt("slipNumber")); 

ResultSet updateSlip = slipUpdate.executeQuery(); 

String sqlCustomer = " INSERT INTO Customer(customerLName, customerFName, slipNumber, boatID, customerNumber)" + 
        "VALUES (?, ?, ?, ?, ?)"; 

PreparedStatement custUpdate = connection.prepareStatement(sqlCustomer); 
custUpdate.setString(1,custLName); 
custUpdate.setString(2, custFName); 
custUpdate.setDouble(3, rs.getInt("slipNumber")); 
custUpdate.setDouble(4, boatIDdub); 
custUpdate.setDouble(5, customerNumber); 

ResultSet updateCust = custUpdate.executeQuery(); 
connection.close() 

回答

2

如果你要檢查你的sqlSlip字符串的內容,你會看到它包含

UPDATE SlipSET slipOpen = 0 AND boatID =?WHERE slipNumber = ? 

您需要的空間增加每個字符串片段的末尾並使用逗號代替AND ...

String sqlSlip ="UPDATE Slip " + 
       "SET slipOpen = 0, boatID = ? " + 
       "WHERE slipNumber = ?"; 

...所以該字符串中包含

UPDATE Slip SET slipOpen = 0, boatID = ? WHERE slipNumber = ? 

還要注意執行你需要使用.executeUpdate(),不.executeQuery()一個INSERT查詢。

相關問題