简单了解一下ADO.NET,其中DataSet通过transaction可以实现事务操作,DataTable基于DataSet的,估计也可以加入事务操作。
请问以后是否能考虑加入加入事务操作功能?
FoxTable定义中包含高效开发工具,还支持Access、SQL Server、Oracle等主流数据库作为外部数据源。通过网络连接外部数据源,会有很多突发情况造成保存
不完全成功。如果可以加入事务操作,就可以避免意外发生。FoxTable作为一个二次开发平台,确实很好,功能强大,大大减少了开发周期,如果更加强健,相信
会吸引更多的业余编程爱好者加入其中。
-------------------------------------------------------------------------------
以下是网上找到的DataSet事务处理代码:
SqlConnection sqlconn = null;
//定义事务
SqlTransaction transaction = null;
DataSet ds = null;
try
{
ds = 某个DataSet
sqlconn = new SqlConnection("连接字符串");
sqlconn.Open();
transaction = sqlconn.BeginTransaction(IsolationLevel.ReadCommitted, "事务名称");
SqlDataAdapter Command;
SqlCommandBuilder objCommandBuilder;
for (int i = 0; i < ds.Tables.Count; i++)
{
Command = new SqlDataAdapter("select * from " + ds.Tables[i].TableName + " where 2>3", sqlconn);
objCommandBuilder = new SqlCommandBuilder(Command);
//开始挂起
//挂起操作
Command.DeleteCommand = new SqlCommand("", sqlconn, transaction);
Command.InsertCommand = new SqlCommand("", sqlconn, transaction);
Command.UpdateCommand = new SqlCommand("", sqlconn, transaction);
Command.SelectCommand = new SqlCommand("select * from " + ds.Tables[i].TableName + " where 2>3", sqlconn, transaction);
Command.DeleteCommand = objCommandBuilder.GetDeleteCommand();
Command.InsertCommand = objCommandBuilder.GetInsertCommand();
Command.UpdateCommand = objCommandBuilder.GetUpdateCommand();
objCommandBuilder.DataAdapter.Update(ds, ds.Tables[i].TableName.ToString());//
//无误后提交事务
}
transaction.Commit();
sqlconn.Close();
}
catch (Exception err)
{
//事务回滚
transaction.Rollback();
}
finally
{
if (sqlconn != null)
{
sqlconn.Close();
}
}
[此贴子已经被作者于2011-5-24 23:16:31编辑过]