![](/img/trans.png)
[英]How to do Automatic synchronize between database access and DatagridView in c#
[英]How To Remove Automatic Datagridview in c#
我有如下的datagridview:
| FIleName | Amount | Description |
--------------------------------------------
| Test001 | 1000 | |
| Test002 | 1000 | |
| Test003 | 1000 | |
我嘗試在datagridview中自動執行使用thread.sleep的行。 當我執行按鈕StartAuthorization時,我想一一執行數據行,如果執行后刪除行,則刪除行; 我嘗試了這段代碼:
private void button7_Click_1(object sender, EventArgs e)
{
Thread.Sleep(10000);
while (dataGridView1.Rows.Count > 0)
{
RunAtomationRun(); // method to execute rows in datagridview
int selectedrowindex = dataGridView1.SelectedCells[0].RowIndex;
DataGridViewRow selectedRow = dataGridView1.Rows[selectedrowindex];
DataGridView1.Rows.RemoveAt(this.dataGridView1.SelectedCells[0].RowIndex);
}
}
但是行不通? 任何想法?
在使用selectedrowindex
之前,您應該檢查是否實際選擇了行。 但是您的函數如何選擇要處理的行?
您應該真正將行傳遞給函數,並在函數成功后將其刪除:
private void button7_Click_1(object sender, EventArgs e)
{
Thread.Sleep(10000);
while (dataGridView1.Rows.Count > 0)
{
DataGridViewRow currentRow = dataGridView1.Rows[0];
RunAtomationRun(currentRow); // method to execute rows in datagridview
DataGridView1.Rows.Remove(currentRow);
}
}
或者讓函數成功刪除行,我想它已經知道它正在處理的工作:
private void RunAtomationRun()
{
// Find row to work on
DataGridViewRow currentRow = ...
// Work on row...
// Delete Row on success
DataGridView1.Rows.Remove(currentRow);
}
兩種變體都可以解決您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.