SqlConnection myConnection = new SqlConnection("Data Source=localhostInitial Catalog=NorthwindIntegrated Security=SSPI")
myConnection.Open()
SqlTransaction myTrans = myConnection.BeginTransaction()//使用New新生成一个事务
SqlCommand myCommand = new SqlCommand()
myCommand.Transaction = myTrans
try
{
for(....)//这儿做循环插入
{
myCommand.CommandText = "Update Address set location='23 rain street' where userid='0001'"
myCommand.ExecuteNonQuery()
}
myTrans.Commit()
}
catch(Exception e)
{
myTrans.Rollback()
}
finally
{
myConnection.Close()
}
像这样订单模式的,需要使用事务,即:将所有的 *** 作一次性提交,如果某条出现问题而导致失败,则前面执行的步骤将都被取消。你可以把 *** 作写到一个存储过程,也可以在网页里一句一句执行,但是事务都是必须的。如:SqlConnection conn = new SqlConnection("[连接字符串]")SqlTransaction sqlTran = new SqlTransaction()
SqlCommand sqlCmd = new SqlCommand()
try
{
sqlTran.Connection = conn
sqlCmd.Connection = conn
//可以执行n次,每次CommandText的语句可以不同
{
sqlCmd.CommandText = "..."
sqlCmd.ExecuteNonQuery()
}
sqlTran.Commit() //提交事务
}
catch
{
sqlTran.Rollback()//回滚
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)