asp.net中怎么同时向多张表插入记录了,只有有一个插入失败,全部执行插入就失败

asp.net中怎么同时向多张表插入记录了,只有有一个插入失败,全部执行插入就失败,第1张

事务...只要执行中间失败.就全部回到执行前状态

#region 运行SQL Server事务Run方法

/// <summary>

/// 运行SQL Server事务

/// </summary>

public void Run()

{

// 访问Microsoft SQL Server样本数据库Northwind,假设Microsoft SQL Server的sa密码为空

string connectionString=@"Server=(Local)Database=NorthwindUID=saPWD=Persist Security Info=false"

//创建Connection对象

System.Data.SqlClient.SqlConnection sqlConnection = null

System.Data.SqlClient.SqlTransaction sqlTransaction = null

try

{

sqlConnection = new System.Data.SqlClient.SqlConnection(connectionString)

sqlConnection.Open()//打开Connection

// 开始本地事务,Connection.BeginTransaction()

// IsolationLevel.ReadCommitted:

// 在正在读取数据时保持共享锁,以避免脏读,但是在事务结束之前可以更改数据,从而导致不可重复的读取或幻像数据。

sqlTransaction = sqlConnection.BeginTransaction(System.Data.IsolationLevel.ReadCommitted,"SQLTransaction")

//创建Command对象

System.Data.SqlClient.SqlCommand sqlCommand = sqlConnection.CreateCommand()

// 指派Connection和Transaction对象给Command对象

sqlCommand.Connection = sqlConnection

sqlCommand.Transaction = sqlTransaction

//开始执行事务,该事务由命令1 2 3组成.

// 执行数据库命令1

sqlCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (200, \'Description\')"

sqlCommand.ExecuteNonQuery()

// 执行数据库命令2

sqlCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (201, \'Description\')"

sqlCommand.ExecuteNonQuery()

// 执行数据库命令3!!!与命令1相同,会出错

sqlCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (200, \'Description\')"

sqlCommand.ExecuteNonQuery()

// 提交事务

sqlTransaction.Commit()

Console.WriteLine("两条数据库命令已经执行完成.")

}

catch(Exception e)

{

try

{

if(sqlTransaction != null)

{

// 回滚事务

sqlTransaction.Rollback("SQLTransaction")

}

}

catch (System.Data.SqlClient.SqlException ex)

{

// 回滚事务失败

if (sqlTransaction.Connection != null)

{

Console.WriteLine("执行回滚事务时出现 " + ex.GetType() + " 违例!" + ex.Message)

}

}

Console.WriteLine("在执行数据库命令时出现 " + e.GetType() + " 违例!" + e.Message)

Console.WriteLine("两条数据库命令均未完成.")

}

finally

{

//关闭Connection

if(sqlConnection != null)

{

sqlConnection.Close()

}

}

}

#endregion

join 没有一个表连接多个表用逗号分割的语法,你必须这么连接

select GY_JBBM.NAME,GY_KSDM.KSMC,GY_YGDM.YGMC,YS_JBZD.ZDSJ

from GY_YGDM join GY_JBBM on (GY_JBBM.id=GY_YGDM.id ) join GY_KSDM on(GY_YGDM.id = GY_KSDM.id) ………………

一个个把所有表都连接完

还有问题hi我。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11410807.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存