我在这里使用.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操作正常。
答案 0 :(得分:5)
DBF文件是一个简单的数据存储 - 它们只是具有关联索引文件的随机访问文件。没有进程或控制文件来控制允许事务处理所需的锁定和回滚。
如果您需要交易,则必须更改文件存储。