当前位置: 首页 > 面试题库 >

ASP.NET MVC-Castle ActiveRecord-显示SQL查询

章哲茂
2023-03-14
问题内容

我使用带有Castle
ActiveRecord的
ASP.NET
MVC作为我的持久层。

我想知道是否可以显示正在MySQL服务器上执行的SQL查询。

我知道在Web应用程序中可以使用Castle XML配置文件中的“
show_sql”属性,但是我不知道如何使用Web应用程序来实现它,因为我无权访问控制台。

我想我可以使用log4net来做到这一点,但是在使用Google进行了一些研究之后,我仍然无法提出解决方案。


问题答案:

在您的Application_Start中:

XmlConfigurator.Configure(new FileInfo(Server.MapPath("/log4net.config")));

然后,您在根目录中需要一个log4net.config,如下所示:

<?xml version="1.0" encoding="utf-8" ?>

<log4net debug="true">
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender, log4net" >
        <param name="File" value="log.txt" />
        <param name="AppendToFile" value="true" />
        <rollingStyle value="Date" />
        <datePattern value="yyyyMMdd" />
        <maxSizeRollBackups value="7" />
        <layout type="log4net.Layout.PatternLayout, log4net">
            <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
        </layout>
    </appender>

    <root>
        <priority value="DEBUG" />
        <appender-ref ref="LogFileAppender"/>
    </root>
</log4net>

这是一个示例应用程序,您可以将其用作参考。



 类似资料:
  • 问题内容: 我正在尝试在SQL Server Profiler(2005)中查看Linq生成的SQL到SQL。 我可以看到从linq到sql以外的任何其他设备发送到服务器的sql。 我敢打赌,我需要更改跟踪的事件选择,但不确定要选择什么。 我目前仅选择此选项:SQL:StmtCompleted-TextData和SPID 我既不想使用数据上下文日志记录,也不想使用SQL Debug Visuali

  • 问题内容: 所以我创建了一个集成脚本,但是由于某种原因它没有显示出正确的结果。我的查询是 结果中出乎意料的一行之一是这个 ID为11的组具有display_style_priority 2000而不是5200。它应显示具有display_style_priority 5200的用户组ID。这是该用户所在的排名最高的组。有人可以指出我做错了什么。 问题答案: 尝试将GROUP BY更改为 其他大多数

  • 问题内容: 我试图弄清楚如何编写一个MySQL查询,该查询将返回日期最近的3个事件。 这是我的桌子: 因此,查询结果应为ID的1,2,5,因为它们是与当前日期相比最接近的ID。 编辑: 查询应该只找到将来的事件。 问题答案: 这意味着1天前的事件与将来1天的事件一样接近。如果您只想要尚未发生的事件,请执行

  • 问题内容: 我正在尝试从sql数据库中的php中显示结果,MySQL语句是正确的,并且可以在phpMyAdmin中执行我想要的操作,但是由于某种原因,我的代码在网页中中断了 这是代码 这就是我得到的 通常,我需要由表ID限制从最小值到最大值的随机数 问题答案: 您需要从查询获得的结果集中的每一行中获取数据。您可以为此使用。 将代码更改为此:

  • 问题内容: 我的DataAcess类中具有以下功能,但未显示任何结果。 我的代码如下: 我也尝试过: 但是它可以很好地运行而无需像这样进行参数设置: 如何使用 @ProductName 参数化编写此代码? 问题答案: 你应该用 代替 为什么?因为在查询中,您的参数在引号内。在报价,SQL会将其识别为一个 字符串字面量 和 从来没有 看到它作为一个参数。

  • 问题内容: 有没有办法只显示查询的前N行输出? 奖励积分,如果在输出行后查询停止运行。 我最感兴趣的是找到一种适用于的东西。 问题答案: 如果您指定要定位的数据库,将很有帮助。不同的数据库具有不同的语法和技术来实现此目的: 例如,在Oracle中,您可以通过设置条件来实现这一点(->将导致输出前10条记录) 在可以使用时可以使用use子句。 Microsoft SQL Server = > Pos