我的想做的是从Excel中读取两张表fill到dataset中然后用
adapter.Update(DataSet,"TableName")更新数据库这样做如何设置事务呢?
这是我的部分有误代码,请指点一下。谢谢!
Trans = dbConnection.BeginTransaction();
dbAdapter.InsertCommand.Transaction = Trans;
dbAdapter2.InsertCommand.Transaction = Trans;
// 把员工信息的数据从dbDataSet导入数据库
dbAdapter.Update(dbDataSet, "UserInfor");
dbAdapter2.Update(dbDataSet2, "Contact");
Trans.Commit();
adapter.Update(DataSet,"TableName")更新数据库这样做如何设置事务呢?
这是我的部分有误代码,请指点一下。谢谢!
Trans = dbConnection.BeginTransaction();
dbAdapter.InsertCommand.Transaction = Trans;
dbAdapter2.InsertCommand.Transaction = Trans;
// 把员工信息的数据从dbDataSet导入数据库
dbAdapter.Update(dbDataSet, "UserInfor");
dbAdapter2.Update(dbDataSet2, "Contact");
Trans.Commit();
dbAdapter.UpdateCommand = cmdb.GetUpdateCommand(); try
{ dbAdapter.UpdateCommand.Transaction = Trans;
dbAdapter.Update(dbDataSet,"UserInfor);
Trans.Commit();
}
catch ()
{ Trans.Rollback();
}
private void GetdbDataUser(string TableName)
{
dbAdapter = new SqlDataAdapter();
dbAdapter.SelectCommand = new SqlCommand("Select * from " + TableName, dbConnection);
SqlCommandBuilder dbCommandBuilder1 = new SqlCommandBuilder(dbAdapter);
dbAdapter.UpdateCommand = dbCommandBuilder1.GetUpdateCommand();
dbAdapter.Fill(dbDataSet, TableName);
}
//------------------------------------------------------------------------------------------------------------------------------------------------------------------
// <summary>
// 从数据库中取得Contact数据 </summary>
// <param name="TableName">
// 要取数据的表名</param>
// <returns>
// 无</returns>
//------------------------------------------------------------------------------------------------------------------------------------------------------------------
private void GetdbDataContact(string TableName)
{
dbAdapter2 = new SqlDataAdapter();
dbAdapter2.SelectCommand = new SqlCommand("Select * from " + TableName, dbConnection);
SqlCommandBuilder dbCommandBuilder2 = new SqlCommandBuilder(dbAdapter2);
dbAdapter2.UpdateCommand = dbCommandBuilder2.GetUpdateCommand();
dbAdapter2.Fill(dbDataSet2, TableName);
}
//------------------------------------------------------------------------------------------------------------------------------------------------------------------
// <summary>
// 导入员工信息 </summary>
// <returns>
// 无</returns>
//------------------------------------------------------------------------------------------------------------------------------------------------------------------
private void UpdateStaffInfor()
{
GetdbDataUser("UserInfor");
GetdbDataContact("Contact"); //向数据库的DATASET中导入数据 FillDataSet();
try
{
Trans = dbConnection.BeginTransaction();
dbAdapter.UpdateCommand.Transaction = Trans;
dbAdapter2.UpdateCommand.Transaction = Trans;
//dbAdapter.InsertCommand.Transaction = Trans;
//dbAdapter2.InsertCommand.Transaction = Trans;
// 把员工信息的数据从dbDataSet导入数据库
dbAdapter.Update(dbDataSet, "UserInfor");
dbAdapter2.Update(dbDataSet2, "Contact");
Trans.Commit();
}
dbAdapter2.UpdateCommand = dbCommandBuilder2.GetUpdateCommand();
时会报这样的错:
“对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成”。