C#项目调试接口,报错Access violation,直接终止

  1. 可能原因:堆栈溢出
  • 业务场景:根据三级Id获取一级数据
  • 实现:SQL语句渐进式推进
SELECT
	a.Id,
	a.NAME,
	a.CODE,
	a.ParentId,
	1 AS LEVEL 
FROM
	table a //一级
	LEFT JOIN table b ON b.ParentId = a.Id //二级
	LEFT JOIN table c ON c.ParentId = b.Id //三级
WHERE
	c.Id = @Id 
	AND a.Deleted = 0 
	AND b.Deleted = 0 
	AND c.Deleted = 0
  • 调试时直接终止程序,报错Access violation
  • 调整SQL
SELECT
	c.Id,
	c.CODE,
	c.`Name`,
	c.ParentId,
	1 AS LEVEL 
FROM
	table a //三级
	LEFT JOIN table b ON a.ParentId = b.Id //二级
	LEFT JOIN table c ON b.ParentId = c.Id //一级
WHERE
	a.Id = '2d46668b-c279-11ea-8c8a-8c04baa4c044' 
	AND a.Deleted = 0 
	AND a.AgmachineCategory = 1
  • 程序正常执行,返回相应数据
  • 问题原因哪位大佬还有其他见解的,欢迎指正ヽ( ̄▽ ̄)و
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值