【问题标题】:Refresh the Grid Automatically when table changes in the DB当数据库中的表更改时自动刷新网格
【发布时间】:2011-05-14 11:27:46
【问题描述】:

我让 Windows 应用程序访问内部服务器并根据来自前端应用程序的用户请求创建设置文件。

1) 当我们请求服务器从前端应用程序创建设置文件时,我们会将详细信息添加到表中。(req id="101", Status="Started" 等) 并在 Grid 中显示这些条目。

2)我们基于FIFO(队列)处理来自服务器的请求并创建设置文件。创建设置文件后,我们将更新到表 status="Completed"。

问题:一旦我们将请求的状态更新到表中(在服务器中完成),我们需要在前端应用程序中刷新网格。

我不想将计时器放在表单中以刷新数据源。还有其他方法可以实现吗?

我的 c# 程序中的数据检索语句

public DataTable GetCustomPatchGridDatasource(string Requesteduser)
        {
            try
            {
                dbConn = new DBConnection();
                myconn = dbConn.CreateConnection();
                myCommand = new SqlCommand();
                myCommand.CommandText = "sp_Patch_GetPatchDetails";
                myCommand.CommandType = CommandType.StoredProcedure;
                myCommand.Parameters.Add(new SqlParameter("@RequestedUserEmail", Requesteduser));
                myCommand.Connection = myconn;
                myDatatadapter = new SqlDataAdapter(myCommand);
                datatable = new DataTable();
                myDatatadapter.Fill(datatable);
                dbConn.CloseConnection();
                return datatable;
            }
            catch (Exception ex)
            {
                dbConn.CloseConnection();
                MessageBox.Show(ex.Message, "Message");
                return null;
            }
        }

【问题讨论】:

    标签: c# winforms gridview refresh


    【解决方案1】:

    使用 INotifyPropertyChanged 事件。

    【讨论】:

      【解决方案2】:

      您可以使用触发器将新行的事实输出到特殊的日志表表中。然后,您可以创建一个 Web 服务,如果该日志历史记录表中有新行,则返回 true 或 false。处理完新行后,您可以删除它们等等。您可以使用带有计时器的 jQuery 对您的 Web 服务进行 ajax 调用,获取响应,并根据 Web 服务返回的内容更新您的控件。可能还有更简单的方法可以做到这一点,但由于明显的性能问题,我不会持续监控主表的新行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-24
        相关资源
        最近更新 更多