C#书写事务处理
public class InsertDBHandler:IHandler {
Log lg = null;
SqlConnection sqlconnection = null;
#region IHandler Members
SqlCommand cmd = new SqlCommand();
public InsertDBHandler()
{
lg = new Log();
}
public bool FrameReceived(IMessage response)
{
sqlconnection = new SqlConnection(SQLHelper.ConnectionStringLocalTransaction);
Message msg = (Message)response;
SqlTransaction tras = null;
int r1 = 0;
int r2 = 0;
int r3 = 0;
try {
if (sqlconnection.State !=ConnectionState.Open)
{
sqlconnection.Open();
}
tras = sqlconnection.BeginTransaction();
cmd.Connection = sqlconnection;
cmd.Transaction = tras;
foreach (Anchor anchor in msg.anchors)
{
foreach (Tag tag in anchor.tags)
{
cmd.CommandText = "insert into TagBlinkLogs (TagId,AnchorId,period,countdown,rxWindow,capabilities,SeqNo,BlinkState,PanicInfo,TimeStamp) values ('" + tag.tagid + "','" + anchor.AnchorId + "',3000,0,20,12,0,1,0,'" + tag.RecordTime + "')"; //
r1 = cmd.ExecuteNonQuery();
for (int i = 0; i < tag.Distince.Length; i++)
{
if (tag.Distince[i] != 0)
{
DateTime temp_time =tag.RecordTime.AddSeconds(20 * i);
cmd.CommandText = "insert into RangingReports (TagID,TimeStamp) values ('" + tag.tagid + "','" + temp_time + "')"; //
r2 = cmd.ExecuteNonQuery();
cmd.CommandText = "insert into DistanceReports (AnchorId,Distance,RangingReport_RangingReportId) values('" + anchor.AnchorId + "','" + tag.Distince[i] +"',@@identity)";
r3 = cmd.ExecuteNonQuery();
}
}
}
}
if (r1 > 0 && r2 > 0 && r3 > 0)
{
tras.Commit();
return true;
}
return false;
}
catch(SqlException ex)
{
lg.Write("数据库操作异常"+ex.Message);
tras.Rollback();
return false;
}
finally
{
sqlconnection.Close();
}
}
public bool FrameReceived(List<IMessage> messages)
{
bool result = false;
foreach(IMessage msg in messages)
{
result = FrameReceived(msg);
if (!result)
{
return false;
}
}
return result;
}
#endregion
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· .NET 进程 stackoverflow异常后,还可以接收 TCP 连接请求吗?
· SQL Server统计信息更新会被阻塞或引起会话阻塞吗?
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 本地部署 DeepSeek:小白也能轻松搞定!
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)
· 我们是如何解决abp身上的几个痛点
· 普通人也能轻松掌握的20个DeepSeek高频提示词(2025版)