请教三层架构中数据访问层参数问题
// bdNum -> 票号 transferTerrice -> 转运平台
public static void AddTbl_invoiceExcel(Tbl_invoice tbl_invoice)
{
string sql = "INSERT tbl_invoice (bdNum,transferTerrice) " +
"VALUES (@bdNum,@transferTerrice)";
try
{
SqlParameter[] para = new SqlParameter[]
{
new SqlParameter("@bdNum",tbl_invoice.BdNum),
new SqlParameter("@transferTerrice",tbl_invoice.TransferTerrice.Code), // FK;
};
// 执行增加数据的操作
DBHelper.ExecuteCommand(sql, para);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
想要请教的问题是:tbl_invoice带过来的转运平台对象有时为空时则报错"未将对象引用至对象的实例",在参数少的情况下我是这么解决的:
public static void AddTbl_invoiceExcel(Tbl_invoice tbl_invoice)
{
// 如果转运平台对象为空时则不插入转运平台的值
string sql;
if(tbl_invoice.TransferTerrice != null)
{
sql = "INSERT tbl_invoice (bdNum,transferTerrice) " +
"VALUES (@bdNum,@transferTerrice)";
}
else
{
sql = "INSERT tbl_invoice (bdNum) " +
"VALUES (@bdNum)";
}
try
{
// 如果转运平台对象为空时则不带转运平台参数
SqlParameter[] para;
if(tbl_invoice.TransferTerrice != null)
{
para = new SqlParameter[]
{
new SqlParameter("@bdNum",tbl_invoice.BdNum),
new SqlParameter("@transferTerrice",tbl_invoice.TransferTerrice.Code), // FK;
};
}
else
{
SqlParameter[] para = new SqlParameter[]
{
new SqlParameter("@bdNum",tbl_invoice.BdNum),
};
}
DBHelper.ExecuteCommand(sql, para);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
========== 这样在参数多的情况下,冗余代码会很多,想请教有没更好的办法控制?期待高手解答……
相关推荐
sqlsugar 多库三层架构
sqlsugar 多库三层架构
Python+MySQL三层架构实战:从DAO到业务层完整实现教程
在Web开发和数据库应用领域,分层架构是提升代码可维护性与扩展性的核心设计思想。将数据访问、业务处理与界面展示分离,不仅能让项目结构清晰,还能有效隔离变更、降低耦合。以Python为开发语言、MySQL为存储引擎,从数据库连接封装、DAO模式到Service层校验与事务控制,再通过控制台界面串联完整流程,便可构建一套规范的三层架构用户管理系统。理解参数化查询防御SQL注入、事务保证数据一致性等关键原理,是工程实践中必不可少的能力。本文从基础概念切入,剖析如何按职责划分模块,并针对中文乱码、连接异常等高频问题
Python+MySQL三层架构源码解析:从环境搭建到业务实现
在数据库应用开发中,清晰的分层结构是保证代码可维护性的关键。三层架构(视图层、业务逻辑层、数据访问层)将界面交互、业务规则与数据操作解耦,使得每个模块职责单一,便于团队协作与功能扩展。对于使用Python和MySQL构建管理系统而言,这种架构尤为实用:数据访问层通过pymysql执行参数化SQL,业务层集中处理校验与逻辑,视图层仅负责交互展示。无论是课程设计还是小型项目,遵循分层思想都能显著提升代码的复用性与可测试性。本文基于一套用户管理系统的完整源码,从环境配置、目录结构、各层实现到参数传递路径,系统拆解
C#上位机融合Halcon的视觉检测实战:三层架构与工程落地
工业机器视觉系统在自动化产线中承担着质量管控的关键职责,其软件架构的合理性直接决定了检测效率与后续维护成本。C#凭借高效的界面开发与业务编排能力,配合Halcon在标定、测量、缺陷检测等算子层面的成熟积累,成为一类典型的技术组合。这类方案不仅能够满足产线对检测精度与节拍的要求,还能通过清晰的分层设计降低需求变更带来的代码修改风险。在金属零件尺寸测量、表面划痕检测、电子产品外观筛查等实际场景中,C#与Halcon的协作模式已被广泛验证。从图像采集、像素标定到结果判定与数据回溯,每一环节都值得体系化设计。本文以
asp.net三层架构例子
本程序是利用三层架构来实现的一个注册功能,包括基本的增,删,改,通过本程序可以帮助三层架构的初学者理解其三层架构的思想,并体验三层架构在实际中的应用,十分适合初学者.


