如何同时刷新数据库和应用程序?

时间:2012-08-21 16:30:26

标签: asp.net vb.net

我们有一个存储过程从表中获取数据,让我们从一个db1中调用它,并填充一个表,在db2中称为table2。

我们安排此存储过程执行此功能,每5分钟一次。这很好。

鉴于用户在执行其他管理功能时大部分都会离开他们的应用程序,我们创建了一个刷新按钮,在单击按钮时刷新GridView。

Protected Sub Refresh_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Refresh.Click
    ' Clean up text to return the GridView to it's default state
      strSearch.Text = ""
      SearchString = ""
      gridView1.DataBind()
End Sub

我们希望同时单击此刷新按钮以使存储过程更新table2并同时刷新GridView。

我知道gridview1.Databind()使用来自table2的最新数据刷新GridView但是如何确保在刷新GridView之前使用存储过程首次使用table1中的数据更新table2。

2 个答案:

答案 0 :(得分:0)

在调用gridView1.DataBind()

之前,只需从应用程序调用存储过程

这是您从代码中调用存储过程的方式:

public object ExecuteStoredProcedureAsValue(SqlConnection conn, 
                                            string storedProcName, 
                                            List<SqlParameter> parameters) 
{
    using (var command = new SqlCommand(storedProcName, conn)) {
        command.CommandType = CommandType.StoredProcedure;

        if (parameters != null)
            parameters.ForEach(p => command.Add(param));

        object result = null;
        using (var reader = command.ExecuteReader()) {
            while (reader.Read())
            {
                result = reader[0];
                break;
            }
        }
        return result;
    }
}

注意“conn”是SqlConnection对象。您应该在调用此代码之前初始化并打开sql连接。

答案 1 :(得分:0)

Kenny我已经为你准备了完整的vb代码,请看一下:

Private Sub CallRefresh()
     Dim connectionString As String = "Initial Catalog=myDataBase;data source=myServer;Integrated Security=SSPI;"
     Dim storedProcName As String = "ActivateServerTask"
     Dim conn As SqlConnection = New SqlConnection(connectionString)
     conn.Open()
     Dim command As SqlCommand = New SqlCommand(storedProcName, conn)
     command.CommandType = CommandType.StoredProcedure
     command.Parameters.Add(New SqlParameter("@taskId", 1))
     command.ExecuteNonQuery()
     command.Dispose()
     conn.Close()
     conn.Dispose()
 End Sub


 Protected Sub Refresh_Click(ByVal sender As Object, ByVal e As EventArgs) Handles     Refresh.Click       
      CallRefresh()
      gridView1.DataBind()       
 End Sub 

CallRefresh打开连接,用“taskId”参数执行“ActivateServerTask”存储过程,最后关闭连接... 请注意我正在使用具有集成安全性的sql连接。 您可以在此处找到其他连接字符串: http://www.connectionstrings.com/

快乐编码肯尼!