新聞中心
下面就將為您介紹如何使用事務(wù)一次處理多條SQL語句的方法,包括SQL中事務(wù)的寫法以及調(diào)用的方法供您參考,希望對您學(xué)習(xí)SQL語句的執(zhí)行能夠有所幫助。

十載專注成都網(wǎng)站制作,企業(yè)網(wǎng)站建設(shè),個人網(wǎng)站制作服務(wù),為大家分享網(wǎng)站制作知識、方案,網(wǎng)站設(shè)計流程、步驟,成功服務(wù)上千家企業(yè)。為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計及定制高端網(wǎng)站建設(shè)服務(wù),專注于企業(yè)網(wǎng)站建設(shè),高端網(wǎng)頁制作,對成都發(fā)電機(jī)租賃等多個方面,擁有多年建站經(jīng)驗(yàn)。
執(zhí)行一個操作時,要同時修改多張表里的數(shù)據(jù),并且每條數(shù)據(jù)都必須操作成功,才算執(zhí)行成功,為了防止有些數(shù)據(jù)操作失敗,有些成功,而造成的數(shù)據(jù)錯亂,我們要使用事務(wù)。
事務(wù)就是:只有所有操作都成功則成功,只要有一條數(shù)據(jù)操作失敗,則回滾。
后臺寫事務(wù):
///
/// 執(zhí)行多條SQL語句,實(shí)現(xiàn)數(shù)據(jù)庫事務(wù)。
///
/// 多條SQL語句
public static void ExecuteSqlTran(List
{
using (OleDbConnection conn = new OleDbConnection(SqlHelper.ConString))
{
conn.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
OleDbTransaction tx = conn.BeginTransaction();
cmd.Transaction = tx;
try
{
for (int n = 0; n < SQLStringList.Count; n++)
{
string strsql = SQLStringList[n].ToString();
if (strsql.Trim().Length > 1)
{
cmd.CommandText = strsql;
cmd.ExecuteNonQuery();
}
}
tx.Commit();
}
catch (System.Data.OleDb.OleDbException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
}
}
///
/// 執(zhí)行多條SQL語句,實(shí)現(xiàn)數(shù)據(jù)庫事務(wù)。
///
/// 多條SQL語句
public static void ExecuteSqlTran(List
{
using (SqlConnection conn = new SqlConnection(SqlHelper.ConString))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
SqlTransaction tx = conn.BeginTransaction();
cmd.Transaction = tx;
try
{
for (int n = 0; n < SQLStringList.Count; n++)
{
string strsql = SQLStringList[n].ToString();
if (strsql.Trim().Length > 1)
{
cmd.CommandText = strsql;
cmd.ExecuteNonQuery();
}
}
tx.Commit();
}
catch (System.Data.SqlClient.SqlException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
}
}
前臺調(diào)用:
try
{
//1.查出會員余額
decimal usermoney = SqlDal.EntityUserinfo.GetModel(int.Parse(cookieUserID)).Money;
//2.修改余額
decimal Zmoney = usermoney + moAD.Commission;
//寫SQL語句
List
string clickSql = "insert into [user] (name,age)values('" + 小名 + "','“+4歲+”')";
string userSql = "update [class] set [name]='" + 幼兒園 + "' where id=" + 2 + " ";
SQLStringList.Add(clickSql);
SQLStringList.Add(userSql);
SqlDal.SqlHelper.ExecuteSqlTran(SQLStringList);
//數(shù)據(jù)庫操作成功
//提示
CommonClass.Xmls xmls1 = new CommonClass.Xmls();
string path1 = CommonClass.Unit.GetMapPath(@"/Admin/Configs/SysSettingInfo.config");
string ClickTishi = xmls1.GetXmlNode(path1, "SysSettingInfo/ClickTishi");
//替換字符
ClickTishi = ClickTishi.Replace("[$]", moAD.Commission.ToString("0.00"));
context.Response.Write(ClickTishi); //輸出
}
catch (Exception ex)
{
//Response.Write(ex.Message);
context.Response.Write("操作失敗!" + ex.Message); //輸出
}
【編輯推薦】
通過執(zhí)行多條SQL語句實(shí)現(xiàn)數(shù)據(jù)庫事務(wù)
存儲過程優(yōu)化的SQL語句寫法
使用存儲過程檢查引起死鎖的SQL語句及進(jìn)程
SQL語句中CASE WHEN的使用實(shí)例
教您不帶參數(shù)的SQL語句執(zhí)行的方法
網(wǎng)頁標(biāo)題:教您用事務(wù)一次處理多條SQL語句
網(wǎng)站網(wǎng)址:http://www.dlmjj.cn/article/djoddhp.html


咨詢
建站咨詢
