1

我在这里使用 .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 操作正常。

4

1 回答 1

5

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

如果您需要交易,您将不得不更改您的文件存储。

于 2010-09-06T13:16:22.240 回答