交易物件未和連接物件相關連??

wish366 2006-10-10 02:58:54
在寫一個使用事務更新DataSet發生了如題的錯誤,大家看看如何修改。。。
以下是第三層代碼

public class UpdateDataSet_ :IUpdateDataSet_
{
SqlConnection conn ;

public UpdateDataSet_()
{
conn = new SqlConnection(HR.Model.Common.LoginInfo.userLoginInfo.companyConnstring);
}
#region IUpdateDataSet_ 成員

public void updateDataSet_(DataSet dsChanges, string[] tableName, SqlDataAdapter[] myDA)
{
SqlTransaction trans;

conn.Open();
SqlDataAdapter[] _myDA = myDA;

trans = conn.BeginTransaction();

try
{
for(int i=0;i<myDA.Length;i++)
{
_myDA[i].SelectCommand.Transaction = trans;
_myDA[i].UpdateCommand.Transaction = trans;
_myDA[i].InsertCommand.Transaction = trans;
_myDA[i].DeleteCommand.Transaction = trans;

_myDA[i].Update(dsChanges,tableName[i]);
}
trans.Commit();
}
catch(System.Exception ex)
{
trans.Rollback();
throw ex;
}
finally
{
if(conn.State == ConnectionState.Open)
conn.Close();
}
}

public SqlDataAdapter GetDataAdapter(string SQL_Select,string SQL_Update,string SQL_Insert,string SQL_Delete,
SqlParameter[] GetParmsUpdate,SqlParameter[] GetParmsInsert,SqlParameter[] GetParmsDelete)
{
SqlDataAdapter myAdapter = new SqlDataAdapter(SQL_Select,conn);
SqlCommand myCmd;

myCmd = new SqlCommand(SQL_Update,conn);
SqlParameter[] updatePamrs = GetParmsUpdate;
foreach(SqlParameter parms1 in updatePamrs)
myCmd.Parameters.Add(parms1);
myAdapter.UpdateCommand = myCmd;

myCmd= new SqlCommand(SQL_Insert,conn);
SqlParameter[] insertParms = GetParmsInsert;
foreach(SqlParameter parms2 in insertParms)
myCmd.Parameters.Add(parms2);
myAdapter.InsertCommand = myCmd;

myCmd = new SqlCommand(SQL_Delete,conn);
SqlParameter[] deleteParms = GetParmsDelete;
foreach(SqlParameter parms3 in deleteParms)
myCmd.Parameters.Add(parms3);
myAdapter.DeleteCommand = myCmd;

return myAdapter;
}

#endregion
}
...全文
29 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧