我有一个回滚按钮,我喜欢使用它,但我的回滚按钮不起作用如何...我怎样才能有效地使用回滚; ?
string myCommand ="Insert into....";
Conn.Open();
OracleCommand cmd = new OracleCommand(myCommand, Conn);
cmd.ExecuteScalar();
private void button_Click(object sender, EventArgs e)
{
rollback;
}
答案 0 :(得分:1)
您必须定义一个事务对象,您可以在那里提交和回滚。应该是这样的:
OracleTransaction tx;
string myCommand ="Insert into....";
Conn.Open();
tx = Conn.BeginTransaction();
OracleCommand cmd = new OracleCommand(myCommand, Conn);
cmd.ExecuteScalar();
private void Commit_button_Click(object sender, EventArgs e)
{
tx.Commit();
}
private void Rollback_button_Click(object sender, EventArgs e)
{
tx.Rollback();
}
答案 1 :(得分:-3)
对于“Insert into ....”,只需为回滚执行“删除....”。
更好的模式是保留命令列表。每个Command都有一个DoSql和UndoSql属性。这允许回滚(UndoSql)和重做(DoSql)。