在网上查了下,很少关于ODBC的事务处理方面的相关文章,写出来做个笔记。
OdbcConnection odbcConn = new OdbcConnection(ODBC连接字符串);
odbcConn.Open();
OdbcTransaction trans = odbcConn.BeginTransaction();
try
{
OdbcCommand cmd = new OdbcCommand(sql语句, odbcConn, trans);
OdbcDataAdapter odbcDa = new OdbcDataAdapter(cmd);
DataSet ds = new DataSet();
odbcDa.Fill(ds);
trans.Commit();
odbcConn.Close();
}
catch (Exception ex)
{
trans.Rollback();
odbcConn.Close();
}
常见异常处理:
1. 如果分配给命令的连接位于本地挂起事务中,要求命令拥有事务。命令的 Transaction 属性尚未初始化
此异常通常都是没有给OdbcCommand赋予事务对象实例OdbcTransaction。
2. 此 OdbcTransaction 已完成;它再也无法使用。
此异常时关闭了数据库连接之后再对事务进行操作就会报这个错误,例如关闭了连接后还执行Commit或者Rollback操作。