c# 如何查看替换参数后的sql语句

发布于 2022-09-06 11:46:17 字数 903 浏览 7 评论 0

List<int> kinds = new List<int>();
        list.ForEach(x => kinds.Add(x.ID));
        string kindStr = ListToStr<int>(kinds, ",", "''");

        string sql = @"select * from 
                    (select row_number() over(partition by c_kind_num order by n_order desc, d_list_date desc, ID desc) as rownum, id, c_kind_num, c_info_title, c_picurl1, g_id, '' AS link
                        from B_INFOS
                        where n_is_active=1 and c_kind_num in (@kind)
                    ) as T
                    where T.rownum >= 1";
        SqlParameter[] paras =
        {
            new SqlParameter("@kind", kindStr)
        };
        DataTable dt = DbHelperSQL.Query(sql, paras).Tables[0];

测试了@Victor的方法,并不行:
图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

虚拟世界 2022-09-13 11:46:17

最简单的方法就是 打开Sql Server Profiler 连接数据库,新建监控,执行后监控中都是有记录的,找到相应的执行记录即可。
如果DbHelperSql封装的是Ado.net的话,也是有方法的,但是需要用到ETW,配置上稍微复杂。
如果使用的是其他的ORM的话,例如Dapper、EF之类的,都有对应的配置参数,查看相应的文档容易找到。

不打扰别人 2022-09-13 11:46:17

断点设置在这里就可以看到了

clipboard.png

怪我鬧 2022-09-13 11:46:17

——打断点在sql的位置

——后台运行调试

——选中你的sql右键 添加监视 就能查看替换参数后的sql了

——你注意你这段 sql 最前面的 DECLARE @TempTable Table

——这是新声明的表、这段sql相当于一个存储过程、是看不了变量的

clipboard.png

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文