Как я могу использовать транзакции в C#
Привет, я написал простой запрос, который выбирает данные из БД, и эти данные я вставляю в разные таблицы. Я должен использовать транзакции здесь, если какой-либо один запрос не удалось выполнить, ни один из них не должен выполняться. Может ли кто-нибудь, пожалуйста, помочь мне, как я могу это сделать?
Что я уже пробовал:
DataTable dtInsertData = new DataTable(); try { dLib = new DataLibrary("VillageMate", false); dtInsertData = dLib.GetDataTable("SELECT * FROM VillageMate_ESS where LogID=(select max(LogID) from [VillageMate_ESS])"); if (dtInsertData.Rows.Count>0) { dLib = new DataLibrary("ESS", false); sqlQUERY = "INSERT INTO [MSTR_Employee] (FirstName, NationalID, EmployeeCode,CreatedDateTime,RecordStatus) VALUES ('"+dtInsertData.Rows[0]["Name"].ToString() + " ' , '" + dtInsertData.Rows[0]["IDNumber"].ToString() + "' , '" + dtInsertData.Rows[0]["RFID"].ToString()+"' , '"+DateTime.Now.ToString()+"' , '"+true+"')"; sqlQUERY += "INSERT INTO [MSTR_Employee_Optional] (TNAEnrollID, CreatedDateTime,RecordStatus) VALUES ('" + dtInsertData.Rows[0]["RFID"].ToString() + "' , '" + DateTime.Now.ToString() + "' , '" + true + "')"; sqlQUERY+= "INSERT INTO [ACS_Card] (CardNumber, StartDate,EndDate, GUIDCard, CreatedDateTime,RecordStatus) VALUES ('" + dtInsertData.Rows[0]["IDNumber"].ToString() + " ' , '" + dtInsertData.Rows[0]["ValidFromDate"].ToString() + "' , '" + dtInsertData.Rows[0]["ValidToDate"].ToString() + "' ,'" + dtInsertData.Rows[0]["RFID"].ToString() + "', '" + DateTime.Now.ToString() + "' , '" + true + "')"; sqlQUERY+= "INSERT INTO [ACS_CardOption] (IsVisitorCard,IsGuardCard, TraceAccess, CreatedDateTime,RecordStatus) VALUES ('" + true + " ' , '" + false + "' , '" + false + "' , '" + DateTime.Now.ToString() + "' , '" + true + "')"; sqlQUERY+= "INSERT INTO [ACS_CardStatus] (CardStatus, CreatedDateTime,RecordStatus) VALUES ('" + 5 + " ' , '" + DateTime.Now.ToString() + "' , '" + true + "')"; sqlQUERY+="INSERT INTO [ACS_ActivityTransaction] (ActivityStatus, ActivityFailCount,ActivitySource, CreatedDateTime,RecordStatus) VALUES ('" + true + " ' , '"+0+"' , '"+0+"' , '" + DateTime.Now.ToString() + "' , '" + true + "')"; int status = dLib.ExecuteNonQuery(sqlQUERY); } return dtInsertData; } catch (Exception ee) { WriteLogs.WriteErrorLogs(-1, 0, GetType().FullName + "." + MethodBase.GetCurrentMethod().Name, ee.ToString()); return null; }