如何使用Odbc在.DBF文件上使用事务?

时间:2010-09-06 13:10:02

标签: c# .net odbc dbf

我在这里使用.dbf文件有问题。我可以进行CRUD操作,但是当我尝试使用事务时,我得到一个例外。 我这样做:

    public void AddRolesToUser(string user, string[] roles)
    {
        using (OdbcConnection connection = new OdbcConnection(ConnectionString))
        {
            OdbcCommand command = new OdbcCommand();
            OdbcTransaction transaction = null;
            command.Connection = connection;
            try
            {
                connection.Open();
                transaction = connection.BeginTransaction();
                command.Connection = connection;
                command.Transaction = transaction;
                command.CommandText = "Delete From Roles Where User='" + user + "'";
                command.ExecuteNonQuery();
                if (roles != null)
                {
                    foreach (string role in roles)
                    {
                        command.CommandText = "Insert Into Roles(User, Role) Values('" + user + "', '" + role + "')";
                        command.ExecuteNonQuery();
                    }
                }
                transaction.Commit();
            }
            catch(OdbcException ex)
            {
                transaction.Rollback();
            }
        }
    }

当它遇到connection.BeginTransaction()我得到这个异常

[Microsoft][ODBC dBase Driver]Optional feature not implemented

这是我的连接字符串

 "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;" + "Dbq=" + root + ";"

我再说一遍,我可以让CRUD操作正常。

1 个答案:

答案 0 :(得分:5)

DBF文件是一个简单的数据存储 - 它们只是具有关联索引文件的随机访问文件。没有进程或控制文件来控制允许事务处理所需的锁定和回滚。

如果您需要交易,则必须更改文件存储。