【发布时间】:2015-06-01 04:14:45
【问题描述】:
我有数据网格视图,它的数据源是 c# 格式的数据表, 我怎样才能让它连续从数据库中读取表 我的意思是,如果我的程序在同一网络中的多台计算机上运行并连接到同一数据库,如果计算机 1 将行添加到数据库中,它会自动出现在计算机 2 中,而无需单击任何按钮进行刷新。
void load()
{
c.connect("sel_dep");
c.com.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da=new SqlDataAdapter (c.com);
DataTable dt = new DataTable();
c.open();
int last = 0;
while (true)
{
if (dt.Rows.Count > 0)
dt.Rows.Clear();
da.Fill(dt);
dd = dt;
if (dt.Rows.Count != last)
{
last = dt.Rows.Count;
this.Invoke((MethodInvoker)delegate { dataGridView1.DataSource = dt; dataGridView1.SelectedRows[0].Selected = true; label1.Text = dataGridView1.RowCount.ToString(); });
}
}
c.close();
}
private void Form3_Load(object sender, EventArgs e)
{
aa = new Thread(() => { load(); });
aa.Start();
}
这是我的托盘
【问题讨论】:
-
那么您面临的错误或问题是什么?
-
@Islam Gx:一种方法是使用
Timer并启动/调用该函数以从SQL 数据库中检索数据并刷新Datagrid.datasource。这将刷新网格,而无需刷新或按任何按钮。 -
申请结果未出现,无法使用表单进行其他任务
-
@fujiFX 我如何在代码中做到这一点
-
Signal R 是通知所有客户数据变化的最佳选择。其他选项是使用计时器定期从数据库中提取数据,但您必须考虑带宽,并且客户端只会在计时器触发发生时更新。 asp.net/signalr