0

我有一个 Web 服务,它通过一个 Web 方法和另一个显示数据库数据的 Web 方法将数据插入 SQL Server 数据库。我制作了一个 Windows 窗体应用程序,它显示了来自 web 服务的数据,编码是:

private void Form1_Load(object sender, EventArgs e)
    {
        Web_Reference.Service1 service = new Web_Reference.Service1();
        dataGridView1.DataSource = service.connectoToSql();
    }

我还没有为文本框编码,但我希望当客户端使用 HTTP POST 将数据插入数据库时​​,文本框文本必须自动填充更新的数据,用户应该无需每次都单击刷新按钮和然后。

有没有办法解决这个问题?任何人都可以为此提供任何想法吗?提前致谢。

4

2 回答 2

0

你的问题有几个机会。

  1. 当将新记录插入表中时,计时器会在所有时间间隔内“检查”。

    如果是 -> 更新表格 ex.( dataGridView1.DataSource = service.connectoToSql();)

  2. 使用网络服务的“推送通知”系统(在我看来已经更好)

  3. 网络套接字...等

这是一个粗略的例子,我会说最简单的方法“定时器”......但是,下面的例子适用于微软的 sql 服务器和用 C# 编码的应用程序。用你的小信息不可能做得更好..:

public static int Main() 
{
       /* Adds the event and the event handler for the method that will 
          process the timer event to the timer. */
       myTimer.Tick += new EventHandler(TimerEventProcessor);

       // Sets the timer interval to 5 seconds.
       myTimer.Interval = 5000;
       myTimer.Start();

}
//Function called every half second
private void TimerEventProcessor(object sender, EventArgs e) 
{ 
    //Update the dataBase every half second
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        SqlCommand cmd = new SqlCommand(command, connection);
        MytextBox.Text = sqlCommand.ExecuteScalar();
        connection.Close();
        connection.Close();
    }
} 

我添加了一张图片以获得最佳解释: 在此处输入图像描述

于 2013-04-16T09:55:30.440 回答
0

这对我有帮助,虽然效果最好,但它非常简单:我添加了一个计时器并在页面加载时启动它。我删除了 datagridview 并获取了 DataTable 并在计时器单击事件中加载了来自 Web 服务响应的所有数据,并用所需的数据填充了每个文本框。

现在发生的情况是,当客户端通过 HTTP POST 插入数据时,它会以当前日期时间插入表中,并且应用程序每秒显示最新数据。这是我所要求的。完全的!

我希望这篇文章将来对其他用户有所帮助。

 private void Form1_Load(object sender, EventArgs e)
    {            
        timer1.Start();            
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        Web_Reference.Service1 service = new Web_Reference.Service1();
        DataTable dt = service.GetData();

        textBox1.Text = dt.Rows[0]["Current_Amount"].ToString();
        textBox2.Text = dt.Rows[0]["Current_Qty"].ToString();
        textBox3.Text = dt.Rows[0]["Rate"].ToString();            
    }
于 2013-04-17T14:56:18.037 回答