【问题标题】:How to check if queries executed over network?如何检查查询是否通过网络执行?
【发布时间】:2013-01-05 20:27:09
【问题描述】:

我在 PC 上安装了 MS SQL Server 2008 作为主服务器,客户端与该服务器连接并执行插入、更新、删除等查询。

我注意到有时在执行 UPDATE 查询时,安装 MS SQL Server 的服务器的数据库中没有保存数据。

我正在使用带有实体框架的 Winform 应用程序。

xBindingSource.EndEdit();
context.SaveChanges();

有没有办法通过网络检查查询是否在服务器上成功执行?

谢谢

【问题讨论】:

  • 查询可能已经正确执行,但实际上可能没有更新任何内容。如果查询执行中出现错误,您将得到实体框架引发的异常。

标签: c# sql-server winforms entity-framework network-programming


【解决方案1】:

运行 sql server 中包含的profiler

【讨论】:

    【解决方案2】:

    您可以将SQL Server ProfilerFiddler 结合使用。

    您可以使用SQL server profiler 检查在 SQL Server 中执行的查询。 通过使用Fiddler,您可以检查是否已向 SQL Server 发出任何请求。

    【讨论】:

    • 如果 OP 使用 WinForms 并直接连接到 SQL 服务器,那么我怀疑 Fiddler 会有所帮助,因为 WinForm 客户端和 Sql 服务器之间没有 HTTP 流量。
    • 你是对的,我假设他正在开发一个网络应用程序;那么他可能会选择 WireShark (stackoverflow.com/questions/2562682/…)
    • "通过使用 Fiddler,您可以检查是否已向 SQL 服务器发出任何请求。"解释这是怎么回事。
    【解决方案3】:

    我用过MiniprofilerThis 回答说它不一定是一个网络应用程序才能使用它。

    【讨论】:

      【解决方案4】:

      您可以简单地使用 Microsoft SQL Server Profiler 检查 SQL Server 是否已收到查询,如果是,您可以看到它的内容。探查器有许多事件,您可以根据需要使用它们。通常,您可以使用 Batch Starting 和 Batch completed 事件。不同的是,如果批处理中出现错误,那么您至少可以看到批处理开始。如果您只想知道 SQL Server 是否已收到请求,那么您只需要探查器即可。

      【讨论】:

        猜你喜欢
        • 2022-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多