我有一个web服务,它通过webmethod和另一个显示数据库数据的webmethod将数据插入到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将数据插入数据库时,文本框文本必须自动填充更新的数据,用户不应单击不时刷新按钮。
这个问题有什么解决方案吗? 任何人都可以为此提出任何想法吗?提前谢谢。
答案 0 :(得分:0)
您的问题有几个机会。
使用计时器在新的时间间隔内“检查”所有时间间隔 记录被插入表格中。
如果是 - >更新前表(dataGridView1.DataSource = service.connectoToSql()
;)
使用Web服务的“推送通知”系统(已经
网络套接字......等
这是一个粗略的例子,方法“Timer”我会说最简单...但是,下面的例子适用于使用C#编写的microsoft sql server和应用程序。你的小信息不可能做得更好..:
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();
}
}
我添加了一张图片以获得最佳解释:
答案 1 :(得分:0)
这对我有所帮助,虽然效果最好但非常简单:我添加了一个Timer并在页面加载时启动它。我删除了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();
}