Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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
Asp.net 每隔[每小时]运行一次查询_Asp.net_Sql Server_Webforms - Fatal编程技术网

Asp.net 每隔[每小时]运行一次查询

Asp.net 每隔[每小时]运行一次查询,asp.net,sql-server,webforms,Asp.net,Sql Server,Webforms,我有一个小网站,可以从Soap API读取股票信息 我这里的例子是,我需要一个图表来显示一段时间内价格的变化,包括每日/每月。。等 以日常方式:我需要从API读取数据,并在应用程序后台以每小时一次的间隔将其存储到表中 如何使用asp.net web表单网站运行该功能 您可以创建一个更新目标表的过程,并且该过程在应用程序调用后运行,该调用会在一个时间间隔内自动运行。过程调用可以从web api、windows服务、控制台应用程序。。。等等 在SQL Server中:创建过程 USE Databas

我有一个小网站,可以从Soap API读取股票信息

我这里的例子是,我需要一个图表来显示一段时间内价格的变化,包括每日/每月。。等

以日常方式:我需要从API读取数据,并在应用程序后台以每小时一次的间隔将其存储到表中


如何使用asp.net web表单网站运行该功能

您可以创建一个更新目标表的过程,并且该过程在应用程序调用后运行,该调用会在一个时间间隔内自动运行。过程调用可以从web api、windows服务、控制台应用程序。。。等等

在SQL Server中:创建过程

USE DatabaseName
GO
CREATE PROCEDURE dbo.UpdateChartTable ( @Parma1 varchar(50), @Param2 varchar(50))
AS 
.................
.................
GO
在应用程序中,自动调用过程,例如从线程调用。

线程的声明

myThread = new Thread(() => ThreaReadingRefreshUserInterface());
myThread.Start();
每5秒运行一次的更新功能

private void ThreaReadingRefreshUserInterface()
{
  try
   {
     SqlConnection MyConnection = new SqlConnection(MyConnectionString);
     SqlCommand MyCommand = new SqlCommand("UpdateChartTable", MyConnection);
     MyCommand.CommandType = CommandType.StoredProcedure;
     MyCommand.Parameters.Add("@Parma1", SqlDbType.VarChar).Value = "Parma1";
     MyCommand.Parameters.Add("@Param2", SqlDbType.VarChar).Value = "Param2";
     sqlConnection.Open();
     return MyCommand.ExecuteNonQuery();
     sqlConnection.Close();
  }
  catch (SqlException ex)
  {

  }
  TimeSpan tms;
  tms = new TimeSpan(0, 0, 5);
  Thread.Sleep(tms);
  ThreaReadingRefreshUserInterface();
}

诚恳地说,web应用程序通常不会这样做。您可以定期运行类似Windows服务或定时控制台应用程序的程序。@David您可以提供一个很好的例子吗?谢谢,这对代理来说是一件好事。@hejazi:一个关于如何制作控制台应用程序的例子?Windows服务?不用点击web或窗口,然后再点击数据库进行更新。uou可以直接从sql server点击webservice并进行更新,就像SSIS或Proc一样。这里要提到的是,您也可以使用“计时器”而不是线程来完成这项工作。