http://www.brentozar.com/archive/2009/09/whats-on-my-bookshelf/
// For conciseness, this code omits error checking // Start the transaction. This turns auto-commit off. transaction = conn.BeginTransaction(); // Allocate a Command object cmd = conn.CreateCommand(); cmd.Transaction = transaction; // Bind parameters cmd.Parameters.Add("id", DB2DbType.Integer); cmd.Parameters.Add("name", DB2DbType.VarChar); cmd.Parameters.Add("name", DB2DbType.Integer); // Prepare an INSERT statement for multiple executions sql = "INSERT INTO employees VALUES(?, ?, ?)"; cmd.CommandText = sql; cmd.Prepare(); // Set parameter values for before execution cmd.Parameters[0].Value = 20; cmd.Parameters[1].Value = "Employee20"; cmd.Parameters[2].Value = 100000; cmd.ExecuteNonQuery(); // Change parameter values for the next execution cmd.Parameters[0].Value = 21; cmd.Parameters[1].Value = "Employee21"; cmd.Parameters[2].Value = 150000; cmd.ExecuteNonQuery(); // Manual commit transaction.Commit(); // Execute a SELECT statement. A prepare is unnecessary // because it’s only executed once. sql = "SELECT id, name, salary FROM employees"; cmd.CommandText = sql; // Fetch the data dataReader = cmd.ExecuteReader(); while (dataReader.Read()) { System.Console.WriteLine("Id: " + dataReader.GetInt32(0) + " Name: " + dataReader.GetString(1) + " Salary: " + dataReader.GetInt32(2)); } System.Console.WriteLine(); //Close the DataReader dataReader.Close(); // Prepare the UPDATE statement for multiple executions transaction = conn.BeginTransaction(); sql = "UPDATE employees SET salary = salary * 1.05 WHERE id=?"; cmd.CommandText = sql; cmd.Prepare(); // Execute the UPDATE statement for each // value of index between 0 and 9 for (int index = 0; index < 10; index++) { cmd.Parameters[0].Value = index; cmd.ExecuteNonQuery(); } // Manual commit transaction.Commit(); // Execute a SELECT statement. A prepare is unnecessary // because it’s only executed once. sql = "SELECT id, name, salary FROM employees"; cmd.CommandText = sql; // Fetch the data dataReader = cmd.ExecuteReader(); while (dataReader.Read()) { System.Console.WriteLine("Id: " + dataReader.GetInt32(0) + " Name: " + dataReader.GetString(1) + " Salary: " + dataReader.GetInt32(2)); } System.Console.WriteLine(); // Close the DataReader dataReader.Close(); } finally { dataReader.Close(); cmd.Dispose(); }













