private void button1_Click(object sender, System.EventArgs e)
{
OracleConnection  myConnection = new OracleConnection("user id=AA;data source=BB;password=CC");
try
{
myConnection.Open();
OracleTransaction myTrans=myConnection.BeginTransaction(); 
OracleCommand  myCommand = new OracleCommand();
myCommand.Transaction=myTrans; myCommand.CommandText = "Update CC set AA='23'  where BB='3'";
myCommand.ExecuteNonQuery(); myTrans.Commit(); Console.WriteLine("Record is udated.");
}
catch(Exception ee)
{
myTrans.Rollback();

Console.WriteLine(ee.ToString());

Console.WriteLine("Sorry, Record can not be updated.");
}
finally
{
myConnection.Close();
}  }
运行这段代码总是出错,恳请帮忙

解决方案 »

  1.   

    private void button1_Click(object sender, System.EventArgs e)
    {
    OracleConnection  myConnection = new OracleConnection("user id=AA;data source=BB;password=CC");
    myConnection.Open();
    OracleTransaction myTrans=myConnection.BeginTransaction();  try
    {
    OracleCommand  myCommand = new OracleCommand();
    myCommand.Transaction=myTrans; myCommand.CommandText = "Update CC set AA='23'  where BB='3'";
    myCommand.ExecuteNonQuery();a处 myTrans.Commit(); Console.WriteLine("Record is udated.");
    }
    catch(Exception ee)
    {
    myTrans.Rollback();

    Console.WriteLine(ee.ToString());

    Console.WriteLine("Sorry, Record can not be updated.");
    }
    finally
    {
    myConnection.Close();
    }  }
    运行这段代码总是出错,恳请帮忙sql语句是正确的,但是运行到a处 就直接逃到catch 里的myTrans.Rollback();
      

  2.   

    为什么不在catch里重新throw异常呢,这样就知道错在哪里啊
      

  3.   

    a处的上面加上
    myCommand.Connection=myConnection;
      

  4.   

    http://jhtchina.cnblogs.com/articles/245512.html
    注释 里面有事物处理的例子
      

  5.   

    是的.都没有给Command指定Connection