 <p>You can send a direct update statement to the Oracle Engine in this way.</p> <pre><code>using (OracleConnection cnn = new OracleConnection(connString)) using (OracleCommand cmd = new OracleCommand("UPDATE TABLE1 SET BIRHDATE=:NewDate WHERE ID=:ID", cnn)) { cmd.Parameters.AddWithValue(":NewDate", YourDateTimeValue); cmd.Parameters.AddWithValue(":ID", 111); cnn.Open(); cmd.ExecuteNonQuery(); } </code></pre> <p>EDIT:</p> <p>If you don't know which fields are changed (and don't want to use a ORM Tool) then you need to keep the original DataSource (a datatable, dataset?) used to populate initially your fields. Then update the related row and use a OracleDataAdapter.</p> <pre><code>using(OracleConnection cnn = new OracleConnection(connString)) using (OracleCommand cmd = new OracleCommand("SELECT * FROM TABLE1 WHERE 1=0", cnn)) { OracleAdapter adp = new OracleDataAdapter(); adp.SelectCommand = cmd; // The OracleDataAdapter will build the required string for the update command // and will act on the rows inside the datatable who have the // RowState = RowState.Changed Or Inserted Or Deleted adp.Update(yourDataTable); } </code></pre> <p>Keep in mind that this approach is inefficient because it requires two trip to the database. The first to discover your table structure, the second to update the row/s changed. Moreover, for the OracleDataAdapter to prepare the UpdateCommand/InsertCommand/DeleteCommand required, it needs a primary key in your table.</p> <p>On the contrary, this is handy if you have many rows to update.</p> <p>The last alternative (and probably the fastest) is a StoredProcedure, but in this case you need to go back to my first example and adapt the OracleCommand to use a StoredProcedure, (Add all fields as parameters, change CommandType to CommandType.StoredProcedure and change the text of the command to be the name of the StoredProcedure). Then the StoredProcedure will choose which fields need to be updated. </p>