阿Y博客

上辈子作恶多端,这辈子Chsarp后端
文章发布热力图
一 三 五
少
多
C# Excel 导入导出实战:多层表头解析 + 合并单元格展开 + 必填列校验 + 多 Sheet 合并

C# Excel 导入导出实战:多层表头解析 + 合并单元格展开 + 必填列校验 + 多 Sheet 合并

业务 Excel 模板永远不干净:双层表头、合并单元格、多 Sheet 语义不同。本文拆解一套生产级封装,讲清 MinRow/MaxDataRow 数据区定位、合并单元格铺值而非 UnMerge、两种前缀拼接策略合成唯一列名、必填列前置校验、多 Sheet 裁剪合并加来源标记,以及按字符串导出规避科学计数法与日期格式化的经验。
.NET 3 0 0
C# 进程调用实战:Process 异步读取输出 + 超时取消 + 进程树终止

C# 进程调用实战:Process 异步读取输出 + 超时取消 + 进程树终止

在 C# 里调用 Python、Shell、Java 脚本看似简单,落地却总踩同一个坑:大输出死锁、脚本卡死没有超时、子进程变孤儿。本文从真实的 ScriptHelper 实现出发,讲清 BeginOutputReadLine 防死锁的原理、CancellationTokenSource 控制超时的写法、Kill(true) 终止进程树的必要性,以及中文输出乱码与退出码读取时机的处理细节。
.NET 4 0 0
SQL Server 差集同步实战:NOT EXISTS 补缺清孤儿与唯一索引竞态兜底(2601/2627)

SQL Server 差集同步实战:NOT EXISTS 补缺清孤儿与唯一索引竞态兜底(2601/2627)

让一张派生表始终与数据源保持一致,逐条循环插入既低效又有竞态。本文分享一套集合式差集同步方案:INSERT...WHERE NOT EXISTS 一条语句补齐缺失组合,反向 NOT EXISTS 清理孤儿记录,再用唯一索引搭配 C# 的 catch...when 异常过滤器精准放行 2601/2627 并发冲突,把 check-then-insert 竞态变成可安全忽略的正常现象,并说明为什么不用 MERGE。
数据库 4 0 0