2011-06-06 99 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的“正确”方式,但它为我完成了工作。