111,129
社区成员
发帖
与我相关
我的任务
分享command.AddParameter("deptno", deptNo); 这样的简洁的方法接口来封装,再来看看你所看到的SQLHelper,就能分辨出那些 SQLHelper 的差距来了。
当一些现成的工具框架不好用,你可以自己动手封装甚至发布,改进那些比较垃圾的框架。ommand.SetParameter("deptno", 1234);来为command设置一个命名参数及其值。
你可以扩展此Helper,例如public static void SetParameter(this DbCommand cmd, string name, object value, DbType? type=null , ParameterDirection? direct = null )
{
var p = cmd.CreateParameter();
p.ParameterName = name;
p.Value = value;
if (type.HasValue)
p.DbType = type.Value;
if (direct.HasValue)
p.Direction = direct.Value;
cmd.Parameters.Add(p);
}
代码一点都不重要,重要的是你是否理解 ADO.NET 的架构。这里可以看出,整个ADO.NET都是一个抽象的体系,这段代码可以适合所有 ADO.NET,而不仅仅包括其中的 Oracle 分支。public static class MySqlHelper
{
public static void SetParameter(this DbCommand cmd, string name, object value)
{
var p = cmd.CreateParameter();
p.ParameterName = name;
p.Value = value;
cmd.Parameters.Add(p);
}
..............
}