我有一个SQL命令,我想检查网格视图的最后一行,一旦它在某一列中更改为Y,以刷新我的页面。它可能需要3-7秒,所以我想基本上每250毫秒循环运行我的选择,一旦选择=Y,然后刷新我的页面,并拿走我的加载屏幕。
我得到这样的行计数,并考虑执行if/ get,但这不会循环:
// Get last row
int count = finalGridView.Rows.Count;
int lastRow = count - 1;
string item = finalGridView.Rows[lastRow].Cells[1].Text;
// Check last row to see if it completed
OleDbCommand checkLast = new OleDbCommand($"SELECT CAST(ACRECP as char(5) ccsid 37) FROM TRDATA WHERE ITNBR = '{item}' AND TRFMT = 'IP' ORDER BY TDATE DESC", cnTrData);
if (checkLast.ExecuteScalar().ToString() == "Y")
{
//Hide popup
loading.Visible = false;
// Rebind
HideUC();
}
else
{
Thread.Sleep(250);
Run command again????
}发布于 2018-02-07 03:20:49
如果使用的是 Server 2005或更高版本,则可以使用SQLNotification服务在应用程序和Server之间创建事件驱动的通信。您只需要拥有在数据库服务器中创建服务的权限,就可以从应用程序中调用它。
为了防止您需要更多关于这方面的信息,您可以在这里遵循这个简明的教程:
http://www.c-sharpcorner.com/UploadFile/87b416/working-with-sql-notification/
希望它能帮上忙
https://stackoverflow.com/questions/48644561
复制相似问题