I see a couple possible issues right off the bat. First, does the account that is connecting to SQL have rights to that particular table? You can either implicitly or explicitly deny a user the ability to write to a table or a database.
Another possibility would be that the item you are writing to is not updatable. Shahin mentioned that it might be a View.
A third option would be that the way you are opening the connection to the database makes it read-only.
Fourth, the database might be rejecting your changes because it violates a set rule (referential integrity, a trigger, etc.) You might want to check to be sure you can run the script in SSMS (if you are using SQL) to be sure the script itself will work.
Fifth, you might be trying to update a query that contains a join. For instance, if you are joining two tables together and then trying to update both sets of table data, you will get an error. In Access, you will get an error even if you only update one table's worth of data.
Finally, if you are using a database like Microsoft Access, your user might not have rights to modify/create a file in the particular folder where the database is located. Don't forget that Access creates an LDF file when writes are being made (thus a file modify operation and a file create operation and later a file delete operation when the LDF is removed).
Here are some articles that might help:
http://www.mikesdotnetting.com/Article/74/Solving-the-Operation-Must-Use-An-Updateable-Query-error[
^]
http://support.microsoft.com/kb/175168[
^]
http://stackoverflow.com/questions/170578/operation-must-use-an-updatable-query-error-3073-microsoft-access[
^]