2011-06-06 101 views
0

C#的DataGridView我有以下代碼:與數據集顯示問題

private void Timer1Tick(object sender, EventArgs e) 
{ 
    timer_ScanTimer.Enabled = false; 

    var psc = new ParseScannedCheckNumbers(); 
    if (psc.ParseCheck(_checkData)) 
    { 
    label_Status.Text = @"Scan Next Check"; 

    var ct = checkTrans.IndividualCheck.NewIndividualCheckRow(); 
    ct.Date = DateTime.Now.ToShortDateString(); 
    var bracct = GetBranchAccountNumber(psc.BankAccountNumber); 
    if (bracct.Trim().Length == 7) 
    { 
     ct.Branch = bracct.Substring(0, 2); 
     ct.AccountNumber = bracct.Substring(2, 5); 
     ct.NameOnCheck = GetAccountName(ct.Branch + ct.AccountNumber); 
     ct.AccountBalance = GetAccountBalance(ct.Branch + ct.AccountNumber); 
    } 
    else 
    { 
     ct.Branch = Configuration.Branch; 
     ct.AccountNumber = string.Empty; 
     ct.NameOnCheck = string.Empty; 
     ct.AccountBalance = 0; 
    } 

    ct.CheckAmount = 0; 
    ct.BankRoutingNumber = psc.BankRoutingNumber; 
    ct.BankAccountNumber = psc.BankAccountNumber; 
    ct.CheckNumber = psc.CheckNumber; 
    ct.Status = "Entered"; 
    checkTrans.IndividualCheck.Rows.Add(ct); 
    } 
    else 
    { 
    label_Status.Text = Resources.ScanCheck_ScanFailed; 
    } 
    _checkData = string.Empty; 

    var rs = new RegistrySettings(); 
    if (!rs.ScanChecksContinuous) 
    { 
    StopScanning(); 
    label_Status.Text = Resources.ScanCheck_Success; 
    EditLastRowEntered(); 
    } 

    label_ChecksScanned.Text = (dgv_Checks.RowCount - 1).ToString(); 
} 

當計時器響起,我覈實,我收到的所有數據,然後我將它添加到數據集。它被添加到數據集沒有問題,它只是每次都在datagridview中看到。有時候它是有效的,但大部分時間沒有。

如何在更改數據集時更新datagridview?我在上面的代碼中做錯了什麼?

謝謝! (再次)

+0

我試過dgv_Checks.Refresh();但那對我沒有任何幫助。 – ErocM 2011-06-06 18:56:17

回答

0

如果您創建的數據集,並使用Visual Studio數據源配置嚮導,它重視的DataGridView,那麼你可能在你的代碼

this.somethingTableAdapter.Fill(this.yourDataSet.someDataTable); 

地方打電話。這實際上是將來自DataSet的數據加載到您的DataGridView中。雖然再次調用此方法可能不是刷新DGV的「正確」方式,但它爲我完成了工作。