SQL是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。在数据的更新和查询方面我们经常会经历一些复杂的问题就是我们在代码输入的时候出现一些调式失败的现象,那么我们尝试写出易于尝试的SQL看看会有什么作用。
一:常见调试
通常在Dapper允许任何人通过创建Dapps的方式来调用任何网站的内容也是最多样的选择,从里面一个断点下去,抓到类似如下SQL编程。
代码:
选择
答:*
从dbo.ptype一
内部联接dbo.ptype_priceBa.typeid=b.ptypeid
左连接dbo.ptype_unitsC对a.typeid=c.unitsid
在a.typeid=@typeid和a.createdate=@Area
和preprice1=@preprice1删除=@删除
总结:是这样的,用@参数化SQL可以得到执行计划重用,性能更高,不过有时候牺牲点性能,来提高可维护性也是可以的,我是这样认为的,需要手工替换后才能调试较为之麻烦,要是能抓到最终SQL就好了。
在这里我们可以利用SQLServerProfiler的工具来实行最终SQL
但是生产环境中的SQLServer,并发执行的SQL非常多,一般在SQLserver里面调试完再写进代码里面的,频繁debug感觉还不如直接在SQLServerProfiler里面抓代码,就算可以我们用快捷键Ctrl+F也要用好的关键字来搜索代码感觉有点麻烦。
二:解决方案
既然我们的最终目标是写出易调试的SQL为什么在Dapper允许任何人通过创建Dapps的方式来调用任何网站的内容执行前,就已经是最终SQL了呢?
代码:
听公开课
{
公共字典<字符串对象>参数=新词典<字符串对象>();
ReplaceParam(参考字符串字符串的SQL)
{
如果(param.count==0)
{
返回SQL语句;
}
新stringbuilder()StringBuilder某人;
某人追加(SQL);
foreach(Paramvaritem)
{
VaRparamName=项目。关键;
VaR值paramvalue=项目;
变量类型=paramvalue。gettype();
如果(类型==typeof(字符串)||型==typeof(日期))
{
//字符串
某人代替($”“{paramName}”,$”“{}”paramvalue”);
}
如果(类型==typeof(bool))
{
//布尔类型
如果(paramvalue。tostring()==“true”)
{
某人代替($”“{paramName}”,“1”);
}
其他的
{
某人代替($”“{paramName}”,“0”);
}
}
其他的
{
//数值
某人代替($”“{paramName}”,paramvalue。tostring());
}
}
SQL=某人tostring();
返回SQL语句;
}
}
SQL的调用示例代码:
公共IEnumerable<型>getptypedetail()
{
var语句@”
*选择A.
从dbo.ptype一
内部联接dbo.ptype_priceBa.typeid=b.ptypeid
左连接dbo.ptype_unitsC对a.typeid=c.unitsid
在a.typeid=@typeid和a.createdate=“创建日期
和preprice1=@preprice1删除=@删除
“;
VaRSqlHelper=新sqlhelper();
听。参数添加(“运行”、“001”);
听。参数添加(“创建日期”的日期时间。现在);
听。参数添加(“preprice1”,3.62m);
听。参数添加(删除,真的);
听ReplaceParam(参考SQL);
IEnumerable<型>plist=新的列表<型>();
使用(VARCON=sqlserverhelper。getconnection())
{
plist=欺诈。查询<型>(SQL);
}
返回属性列表;
}
上面就是最终的利用Dapper创建的方式来调用网站内容调试的工作。
三:这样的替代还是有好处,在C#语言上的调试实例有很多,因为C#的语言变化比较快,当你在用来调试测试的时候你会发现一些微乎其微的事。鼠标放在SQL变量上,轻松的拿到最终SQL进行调试,而不是,手动去替换@参数又或则在SQLServerProfiler里面漫无目的的寻找着你的代码。
总结:我们分别在@和C#进行测试,SQL适合于各种不同的平台但是对于一些开发上测试的bug我们还是要注意,多尝试几次的测试通过上述我们也知道我们能够用SQL的变量上找寻问题的根源,无论是对于网站内容的测试还是其他地方的BUG都能够很好的清楚知道,根据结构化的数据库来进行查询。
¥798.00
¥199.00
¥48.00¥180.00
¥48.00¥180.00
¥199.00
¥29.90