鍍金池/ 問答/C#  數(shù)據(jù)庫/ c# 如何查看替換參數(shù)后的sql語句

c# 如何查看替換參數(shù)后的sql語句

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];

測(cè)試了@Victor的方法,并不行:
圖片描述

回答
編輯回答
抱緊我

——打斷點(diǎn)在sql的位置

——后臺(tái)運(yùn)行調(diào)試

——選中你的sql右鍵 添加監(jiān)視 就能查看替換參數(shù)后的sql了

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

——這是新聲明的表、這段sql相當(dāng)于一個(gè)存儲(chǔ)過程、是看不了變量的

clipboard.png

2017年7月4日 10:23
編輯回答
醉淸風(fēng)

斷點(diǎn)設(shè)置在這里就可以看到了

clipboard.png

2018年7月26日 03:13
編輯回答
萌面人

最簡(jiǎn)單的方法就是 打開Sql Server Profiler 連接數(shù)據(jù)庫,新建監(jiān)控,執(zhí)行后監(jiān)控中都是有記錄的,找到相應(yīng)的執(zhí)行記錄即可。
如果DbHelperSql封裝的是Ado.net的話,也是有方法的,但是需要用到ETW,配置上稍微復(fù)雜。
如果使用的是其他的ORM的話,例如Dapper、EF之類的,都有對(duì)應(yīng)的配置參數(shù),查看相應(yīng)的文檔容易找到。

2018年4月11日 01:56