相关疑难解决方法(0)

更新基础数据源时刷新DataGridView的最佳方法

更新基础数据源时刷新DataGridView的最佳方法是什么?

我经常更新数据源,并希望在发生时向用户显示结果.

我已经得到了这样的东西(并且它可以工作),但是忽略DataGridView.DataSource它似乎不是正确的方式.

List<ItemState> itemStates = new List<ItemState>();
dataGridView1.DataSource = itemStates;

for (int i = 0; i < 10; i++) { 
    itemStates.Add(new ItemState { Id = i.ToString() });
    dataGridView1.DataSource = null;
    dataGridView1.DataSource = itemStates;
    System.Threading.Thread.Sleep(500);
}
Run Code Online (Sandbox Code Playgroud)

.net c# datagridview winforms

55
推荐指数
3
解决办法
9万
查看次数

为什么我的DataGridview拒绝刷新?

我正在更新表格中的一行.表的一个子集显示在DataGridView中.当我更新行时,更改不会反映在DataGridView中.即使我在提交更改后调用DataGridView.Invalidate()和DataGridView.Refresh(),我也必须关闭应用程序,重新启动并重新运行查询,然后才能看到更改.

相关代码是:

private void buttonUpdate_Click(object sender, EventArgs e)
{
    const int TICKETID_COLUMN = 0;

    String _ticketID = dataGridView1.CurrentRow.Cells[SOME_COLUMN].Value.ToString();

    UpdateRecord(_ticketID, textBoxTicketSource.Text,
                textBoxAboutSomeID.Text, textBoxCategoryID.Text, textBoxContactEmail.Text);
}

private void UpdateRecord(string ATicketID, string ATicketSource, string 
    AAboutSomeID, string ACategoryID, string AContactID)
{
    oracleConnection1.Open();
    OracleCommand ocmd = new OracleCommand();
    OracleTransaction ot;
    // Start a local transaction 
    ot = oracleConnection1.BeginTransaction(System.Data.IsolationLevel.ReadCommitted);
    // Assign transaction object for a pending local transaction 
    ocmd.Transaction = ot;
    ocmd.Connection = oracleConnection1;
    try
    {
        ocmd.CommandText = @"UPDATE ABC.CONCERTTICKETS 
                                     SET TICKETSOURCE = :p_TICKETSOURCE, 
                                     ABOUTSOMEID = …
Run Code Online (Sandbox Code Playgroud)

.net c# oracle datagridview dotconnect

0
推荐指数
1
解决办法
8088
查看次数

标签 统计

.net ×2

c# ×2

datagridview ×2

dotconnect ×1

oracle ×1

winforms ×1