在C#对数据库进行操作时,常常要用到事务:
#region ExecuteTransaction
/// <summary>
/// 执行多条语句
/// </summary>
/// <param name="commandText">sql[]</param>
/// <param name="connectionString">连接字符串</param>
/// <param name="hstParm">key:sql索引 values:OracleParameter【】 </param>
/// <returns></returns>
public static bool ExecuteTransaction(string[] commandText, string connectionString, Hashtable hstParm)
{
bool bR = true;
using (OracleConnection connection = new OracleConnection(connectionString))
{
connection.Open();
OracleCommand command = new OracleCommand();
command.Connection = connection;
OracleTransaction tx = connection.BeginTransaction();
command.Transaction = tx;
try
{
for (int i = 0; i < commandText.Length; i++)
{
OracleParameter[] parameters = (OracleParameter[])hstParm[i];
foreach (OracleParameter parameter in parameters)
{
command.Parameters.Add(parameter);
}
command.CommandText = commandText[i];
command.ExecuteNonQuery();
command.Parameters.Clear();
}
tx.Commit();
}
catch (System.Data.OracleClient.OracleException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
}
return bR;
}