Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查SQL数据源的大小_C#_Asp.net - Fatal编程技术网

C# 检查SQL数据源的大小

C# 检查SQL数据源的大小,c#,asp.net,C#,Asp.net,我有一个SQL数据源,我想每15秒检查一次它的大小变化。数据源可以是空的,也可以包含任意数量的条目。任何时候大小与上一次检查不同,我都会尝试返回某种标志,以便使用它触发windows系统通知。作为c的新手,我不确定如何解决这个问题 如下所示,跟踪数据源中条目数的一种方法是使用select count* 我正在摸索的是如何编写一个c函数来查看这个SQL数据源的大小变化。下面是伪代码中的一个想法: protected void checkSize(object sender, EventArgs e

我有一个SQL数据源,我想每15秒检查一次它的大小变化。数据源可以是空的,也可以包含任意数量的条目。任何时候大小与上一次检查不同,我都会尝试返回某种标志,以便使用它触发windows系统通知。作为c的新手,我不确定如何解决这个问题

如下所示,跟踪数据源中条目数的一种方法是使用select count*

我正在摸索的是如何编写一个c函数来查看这个SQL数据源的大小变化。下面是伪代码中的一个想法:

protected void checkSize(object sender, EventArgs e, SQL DataSource ds)
{
    int a = select count(*) ds
    //wait 30 seconds
    int b = select count(*) ds
    if b > a
        //trigger windows notification (outside of scope)
    else
        repeat

    repeat every 30 seconds
}

创建一个返回项目计数的存储过程。将此过程添加到按计划30秒运行的SQL代理作业?。如果数量超过特定阈值,您可以发送工作电子邮件或提醒


@MaxB如果您需要按自己的方式执行,那么您需要使用一个跟踪执行时间的计时器。触发器将位于选中的复选框DexChanged事件上。注意:这种方法可能代价高昂,因为它会导致对服务器的持续回发,并且容易发生会话超时,因此您可能需要检查并增加超时变量。更好的设计是,如果最后一个事件是检查还是不检查,则在数据库中保持跟踪,然后在新页面加载时,用户稍后进入页面,复选框将已被检查,作业仍在运行。然后用户可以通过禁用作业取消选中该框。

您所说的数据源和大小是什么意思?您是指特定查询返回的行数吗?即使大小没有更改,您是否关心返回的数据是否已更改?@Flydog57数据源是SQL查询的结果。它的行为方式不可能改变返回的数据。根据大小,我认为这可以通过返回的行数或返回的数据在内存中的实际大小来完成。您是如何编写这个查询的?直接的ADO.NET、简洁的实体框架?如果您的查询看起来像从XYZ中选择A、B、C,其中A= LMNOP,请考虑从XYZ中选择Actudio *的结果,其中A=lmnop@Flydog57这样做会激发ADO.NET。我理解SQL方面的东西,只是不知道如何编写c函数来处理它。感谢“选择计数”技巧,这将非常有用,有助于精简工作。看看Dapper,它比直接的ADO更容易使用,也不容易出错。我正在尝试在web应用程序方面做一切事情,以避免干扰database@MaxB网页不是每X秒运行一次代码的合适位置。您的代码最终将只响应客户端请求,而不是按需运行。代理作业是这个逻辑的好地方,也是一个单独的服务。@Alejandro它被设置为在网页上选中复选框时运行,当该网页被多次打开时会发生什么?它是否为每个用户运行一次?如果没有人打开该页面并勾选该复选框,则该页面将不会运行。页面加载时,复选框未选中,并且仅在复选框选中时运行。如果页面未打开或未选中复选框,它将永远不会运行