VS2017一步一步断点调试解决Dapper语句出现的Bug
最近再做一个项目,出现一个小bug,bug虽小,但是却要命啊。下面我show下我解决问题的方法。
View层代码:
@model List<mhq.Blog.Model.Blog> <blockquote class="layui-elem-quote">文章管理</blockquote>
<div style="padding:10px;">
<div>
<a class="layui-btn" href="~/Admin/Blog/Add">
<i class="layui-icon"></i> 添加
</a>
</div> <table class="layui-table">
<thead>
<tr>
<th>发布时间</th>
<th>boke标题</th>
<th>所属分类</th>
<th>访问量</th>
<th>排序号</th>
<th>管理</th>
</tr>
</thead>
<tbody>
@foreach (var blog in Model)
{
<tr>
<td>@blog.createdate.ToString("yyyy-MM-dd HH:mm")</td>
<td>@blog.title</td>
<td>@blog.caname</td>
<td>@blog.visitnum</td>
<td>@blog.sort</td>
<td>
<a style="margin-right:20px" href="~/Admin/Blog/Add/@blog.id">
<i class="layui-icon"></i>
编辑
</a>
<a href="javascript:void()0;" onclick="del(@blog.id)">
<i class="layui-icon"></i>
删除
</a>
</td>
</tr>
}
</tbody> </table>
</div> <script>
/* 删除*/
function del(id) {
layui.use('layer', function () {
var layer = layui.layer;
var $ = layui.jquery;
layer.confirm("是否确认删除?", function () { var url = "/Admin/Blog/Del/" + id;
$.post(url, function (data) {
layer.alert(data, function () { location.reload(); }); }) })
})
} </script>
Controller层代码:
public IActionResult Index()
{
List<Model.Blog> list = dal.GetList(" 1=1 order by sort asc,id desc");
return View(list);
}
Dal层代码:
/// <summary>
/// 查询
/// </summary>
/// <param name="cond">查询条件</param>
/// <returns></returns>
public List<Model.Blog> GetList(string cond)
{
// Dapper – Simple List
using (var connection = ConnectionFactory.GetOpenConnection())
{
string sql = "select * from blog ";
if (!string.IsNullOrEmpty(cond))
{
sql=sql+$" where{cond}";
}
var list = connection.Query<Model.Blog>(sql).ToList();
return list;
}
}
我这里出现的错误是“System.Data.SqlClient.SqlException:““=”附近有语法错误。”如图:
解决方法:
1、首先在此处方法上添加断点,如图:
2、运行程序到此断点(F5运行程序)
3、单步运行(F11)
对sql、 list添加监视,我们可以清楚的看到list里面的查询语句为:
select * from blogwhere1=1 order by sort asc,id desc
显然这是错误的查询语句。
如图:
正确的应为:
select * from blog where 1=1 order by sort asc,id desc
也就是说blog与where之间和where与1=1之间缺少空格。
所以我们只要在相关的代码中加上空格就OK了。
VS2017一步一步断点调试解决Dapper语句出现的Bug的更多相关文章
- VS2010无法断点调试解决办法
今天我的VS2010忽然出现设置断点的时候,无法进行调试.现象:每次在设置断点调试的时候都会出现卡机,然后VS弹出如下图所示的状况: 解决办法: 依次点击:“工具-->扩展管理器”然后找到.Ne ...
- 一步一步学FRDM-KE02Z(一):IAR调试平台搭建以及OpenSDA两种工作模式设置
摘要:FRDM-KE02Z是飞思卡尔公司较为新的微控制器,学习和开发资料较少.从本篇开始会陆续介绍其相关的开发流程,并完成一个小型的工程项目.这是本系列博客的第一篇,主要介绍开发环境IAR for A ...
- 转:IDEA中如何使用debug调试项目 一步一步详细教程
原文链接:http://www.yxlzone.top/show_blog_details_by_id?id=2bf6fd4688e44a7eb560f8db233ef5f7 在现在的开发中,我们经常 ...
- vscode加MinGw三步搭建c/c++调试环境
vscode加MinGw三步搭建c/c++调试环境 step1:安装vscode.MinGw 1.1 vscod常规安装:https://code.visualstudio.com/ 1.2 MinG ...
- IDEA中如何使用debug调试项目 一步一步详细教程
转载该文章:https://blog.csdn.net/yxl_1207/article/details/80973622 一.Debug开篇 首先看下IDEA中Debug模式下的界面. 如下是在ID ...
- 一步一步学习SignalR进行实时通信_3_通过CORS解决跨域
原文:一步一步学习SignalR进行实时通信_3_通过CORS解决跨域 一步一步学习SignalR进行实时通信\_3_通过CORS解决跨域 SignalR 一步一步学习SignalR进行实时通信_3_ ...
- 一步一个坑 - WinDbg调试.NET程序
引言 第一次用WinDbg来排查问题,花了很多时间踩坑,记录一下希望对后面的同学有些帮助. 客户现场软件出现偶发性的界面卡死现象一直找不出原因,就想着让客户用任务管理器生成了一个dump文件发给我,我 ...
- eclipse打断点调试进入到class文件中,不显示变量值的解决办法汇总
每天学习一点点 编程PDF电子书免费下载: http://www.shitanlife.com/code 问题描述:eclipse打断点调试进入到class文件中,而且监视区不显示变量结果 是由于对应 ...
- MyEclipse断点调试不可用解决办法
前言:MyEclipse中出现Debug调试不可用,断点处出现斜线.那么,如何解决此类问题? 1.打开myeclipse软件(版本不限) 2.设置断点,出现如下图所示情况,断点处出现斜线. 3.修改方 ...
随机推荐
- springcloud 入门 10 (eureka高可用)
eureka高可用: 说白了,就是加一个实例作为原实例的备份,然后一起对外提供服务.这样可以保证在一台机器宕机的时候,整个系统不会死掉.保证其继续对外服务. eureka的集群化: 服务注册中心Eur ...
- python第六十一天,第六十二天 redis
redis 缓存系统 redis是业界主流的key-value nosql 数据库之一.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).se ...
- 转:npm安装教程
一.使用之前,我们先来掌握3个东西是用来干什么的. npm: Nodejs下的包管理器. webpack: 它主要的用途是通过CommonJS的语法把所有浏览器端需要发布的静态资源做相应的准备,比如资 ...
- Nginx Linux安装与部署
Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行. ...
- ARP单播请求?
在我的理解中,ARP请求是已知对方的IP地址,想要请求对方的MAC地址,用以封装以太网帧头.因此在不知道对方MAC地址的情况下,会广播ARP请求到整个子网,让子网中的所有设备收到这个广播ARP请求报文 ...
- [MapReduce_add_2] MapReduce 实现年度最高气温统计
0. 说明 编写 MapReduce 程序实现年度最高气温统计 1. 气温数据分析 气温数据样例如下: ++023450FM-+000599999V0202701N015919999999N00000 ...
- Navicat连接Oracle 报 ORA-12737 set CHS16GBK错误
4,680 今天看到0day5上面更新了一个用友ERP的漏洞,确实可以下载任意文件:但是用友ERP基本上都是使用了oracle数据库,必须要有一个好的数据库连接工具才可以,Navi ...
- 路由交换01-----ICMP协议
路由交换协议------ICMP ICMP协议 ICMP (InternetControl Message Protocol)协议是TCP/IP协议簇的核心协议之一,用来在网络设备之间传递各种差错和控 ...
- python第四十九课——对象序列化与反序列化
person.py class Person: def __init__(self,*args,**kwargs): print('我是Person类的构造...') # self.name=name ...
- Cesium学习2:如何从零开始在Eclipse IDE,Java语言搭建cesium开发环境
废话不多说,今天就先在Eclipse上搭建Cesium开发环境吧~ 零.Cesium简介 Cesiumjs 是一套javascript库,用来渲染3D地球,2D区域地图,和多种GIS要素.不需要安装任 ...