`

DataGridView刷新数据的问题

    博客分类:
  • C#
UI 
阅读更多

1、操作:UI线程修改数据后重新绑定dgv,一个后台线程定时刷新dgv(因为多个程序修改该表)

2、异常:DataGridView绑定Ilist对象,出现IndexOutOfRangeException错误的解决方法

3、解决办法:把读取数据和绑定数据源作为一个原子操作

 

        private delegate void SetDgvDelegate();
        /// <summary>
        /// 跨线程访问dgv
        /// </summary>
        private void SetDgv()
        {
            if (dgv.InvokeRequired)
            {
                SetDgvDelegate handler = SetDgv;
                dgv.Invoke(handler);
            }
            else
            {
                lock (dgv)
                {
                    dgv.DataSource = emptyCollection;
                    dgv.DataSource = common.GetDetail(tableNum, out tableName);
                    dgv.ClearSelection();//清空选择行 
                }
            }
        }

 

 

分享到:
评论
9 楼 devilhand 2012-03-31  
 
8 楼 devilhand 2012-03-31  
 
7 楼 devilhand 2012-03-31  
  
6 楼 devilhand 2012-03-31  
  
5 楼 devilhand 2012-03-31  
 
4 楼 devilhand 2012-03-31  
 
3 楼 devilhand 2012-03-31  
 
2 楼 devilhand 2011-07-01  
1 楼 devilhand 2011-07-01  

相关推荐

    C# 数据库增删查改及DataGridView刷新数据

    // 刷新数据 dt.Clear(); adapter.Fill(dt); dataGridView1.Refresh(); ``` 在提供的"Students.sql"文件中,可能包含创建名为"Students"的表的SQL脚本,包括表结构和可能的初始数据。"C#数据库 单表 数据库 大家...

    datagridview的数据绑定

    步骤5:刷新数据 如果数据源发生变化,记得调用`DataGridView.Refresh()`方法来更新显示: ```csharp // 在数据源更改后... dataGridView1.Refresh(); ``` 总结,`DataGridView`在C#中的数据绑定涉及设置数据源、...

    c#datagrid操作,解决datagridView加载慢.docx

    但是,在使用过程中,人们经常会遇到 DataGridView 直接绑定 DataSource 加载数据比较慢的问题。这是一个非常棘手的问题,很多开发者都曾经遇到过这个问题。 在本文中,我们将讨论 DataGridView 的操作,特别是解决...

    使用线程自动刷新数据的例子

    在这个“使用线程自动刷新数据的例子”中,我们将深入探讨如何利用线程技术来实现实时数据刷新,特别是在Windows桌面应用程序中,如使用DataGridView控件显示数据。 首先,`DataRefresher.sln`是一个Visual Studio...

    datagridview 数据实现自动筛选

    6. **优化性能**:为了提高性能,避免每次文本改变都全量刷新数据,你可以引入延迟加载策略,例如使用定时器来控制筛选操作,只有当用户停止输入一段时间后才执行筛选。 7. **处理特殊情况**:对于多列筛选,你可以...

    简单多线程 BackgroundWorker 刷新 dataGridView行

    本主题将详细探讨如何使用`BackgroundWorker`来刷新`dataGridView`的行,以及它在WinForm中的工作原理。 `BackgroundWorker`是.NET Framework提供的一种简单机制,用于在后台线程上执行计算密集型任务,同时允许...

    DataGridView固定滚动条

    为了解决这个问题,我们可以扩展`DataGridView`并实现自定义的刷新逻辑。 首先,创建一个名为`DataGridViewExt`的新类,该类继承自`DataGridView`。这样,我们可以在新类中添加或重写必要的方法来实现所需的功能。...

    DataGridView数据编辑模板

    RefreshData 统一的刷新数据表过程,具体功能中需要重载该方法,并调用具体的TableAdapter.Fill(DataTable),以查询数据 DataValid 统一的数据验证方法,在保存数据前被调用。具体功能中可重载该方法添加自定义的...

    C#DataGridView分页显示功能实现

    当数据量较大时,一次性加载所有数据可能导致性能问题,因此需要实现分页显示功能。本篇文章将详细讲解如何在C# WinForm应用中实现`DataGridView`的分页功能。 首先,我们需要了解`DataGridView`的基本用法。`...

    C#ACCESS创建修改删除,DataGridView绑定数据下的删除添加修改源码

    对于大量数据,一次性加载所有记录可能导致性能问题。可以采用分页或延迟加载策略。例如,使用虚拟模式(VirtualMode)和事件处理来仅加载视图中的行: ```csharp dataGridView1.VirtualMode = true; dataGridView1...

    DataGridView 控件显示树结构

    添加`CellClick`事件处理程序,当用户点击某一单元格时,根据当前行的索引和树形数据结构,更新对应节点的展开状态,并重新加载或刷新`DataGridView`的内容。 7. **调试与运行**: 在Visual Studio 2012中,设置...

    C# WinForm DataGridView同步更新数据库 TreeView最简单的绑定数据库

    同样,确保在执行这些操作时关闭并重新打开数据适配器,以刷新`DataGridView`中的数据。 要注意的是,数据库表必须有主键,这样才能保证数据的唯一性并支持`DataGridView`和`TreeView`的正确更新。主键是表中一个或...

    datagridview-数据处理方法-修改-删除-添加-下拉类表.docx

    而是直接更新数据源(如DataTable),然后刷新DataGridView,这可以显著提高用户体验,因为数据更新几乎是即时的。 7. **界面设计**: - 文档中的代码展示了如何设置DataGridView的一些基本属性,如AutoSizeMode...

    用DataGridView显示和操作数据库

    在这个过程中,我们不仅学习了如何建立数据库连接、执行查询,还掌握了如何更新数据库以及如何刷新DataGridView中的数据。这对于开发具有数据交互功能的应用程序来说是非常重要的。在实际项目中,还可以进一步扩展...

    c#使用bindlist绑定datagridview不能自动排序的解决类

    `DataGridView`是一个强大的数据呈现控件,可以用来显示各种类型的数据源。当与`BindingList&lt;T&gt;`结合使用时,可以通过简单的代码将数据源绑定到`DataGridView`上。但是,由于`BindingList&lt;T&gt;`默认不支持自动排序,...

    c# winform datagridview联合access数据库 查询 删除 添加 生成报表

    在添加后,可能需要刷新DataGridView以显示新数据。 6. **更新数据**: 更新数据使用UPDATE语句,如`UPDATE TableName SET Column1 = NewValue WHERE Condition`。执行命令后,若数据绑定到DataGridView,更新的...

    C# DataGridView使用

    在本篇中,我们将深入探讨`C#`中的`DataGridView`控件的使用,包括如何添加行、设置表头、数据源绑定以及如何刷新数据。 首先,我们来了解`DataGridView`的基本结构。`DataGridView`由行(Rows)和列(Columns)...

    DataGridView列标头带数据筛选功能

    5. **性能优化**: 对于大量数据,实时筛选可能会导致性能问题。为优化性能,可以考虑在后台线程中进行筛选,或者使用虚拟化技术只加载可视区域的数据。 6. **恢复默认视图**: 提供一个“清除筛选”按钮,让用户可以...

    datagridview列头设置下拉列表过滤筛选

    在.NET框架中,`DataGridView`控件是Windows Forms应用程序中常用的数据展示组件,它允许用户以表格形式查看和编辑数据。在某些情况下,为了提高用户体验并实现更高级的数据操作,我们可能希望在`DataGridView`的列...

    datagridview 详解

    ### DataGridview 详解 ...此外,通过`dataGridView1_UserDeletedRow`事件,可以在行被删除后执行一些清理或更新操作,如刷新界面或更新数据库。在这个事件处理程序中,可以获取已删除行的信息,以便进行后续处理。

Global site tag (gtag.js) - Google Analytics