C# dataGrid控件与dataGridView控件数据框绑方式
在.NET版本不同的情况下,可能会遇到dataGrid与dataGridView数据绑定的问题:
若.NET 2.0版本绑定数据方式:
DataSet ds=new DataSet();
this.dataGridView1.SetDataBinding(ds, "profit");
若.NET4.0以上版本绑定数据方式:
DataSet ds=new DataSet();this.dataGridView1.DataSource=ds;this.dataGridView1.DataMember="表名";//必须要设置DataMember属性,指定要绑定到DataSet中的哪张表
使用DataGridView控件,可以显示和编辑来自多种不同类型的数据源的表格数据。
将数据绑定到DataGridView控件非常简单和直观,在大多数情况下,只需设置DataSource属性即可。在绑定到包含多个列表或表的数据源时,只需将DataMember属性设置为指定要绑定的列表或表的字符串即可。
一、非绑定模式
所谓的非绑定模式就是DataGridView控件显示的数据不是来自于绑定的数据源,而是可以通过代码手动将数据填充到DataGridView控件中,这样就为DataGridView控件增加了很大的灵活性。我们先来了解一下DataGridView控件有多种类型的列,而这些类型都是间接的或直接的继承了DataGridViewColumns累,下面是我们能够经常用到的几种类型:
类 | 说明 |
DataGridViewTextBoxColumn | 与基于文本的值一起使用,在绑定到数字和字符串类型的值时自动生成 |
DataGridViewCheckBoxColumn | 与boolean和checkState值一起使用,在绑定到这些类型的值时自动生成 |
DataGridViewImageColumn | 用于显示图像,在绑定到字节数组、Image对象或Icon对象自动生成 |
DataGridViewButtonColumn | 用于在单元格中显示按钮,不会在绑定时自动生成,通常用来做未绑定列 |
DataGridViewComboBoxColumn | 用户在单元格中显示下拉列表,不会在绑定时自动生成,通常需要手动进行数据绑定 |
DataGridViewLinkColumn | 用于在单元格中显示超链接,不会在绑定时自动生成,通常需要进行手动绑定数据 |
二、绑定模式
就是将已经存在的数据绑定到DataGridView控件上。将数据绑定到DataGridView控件上非常简单和直观,在大多数情况下,只需设置DataSource属性即可。在绑定到包含多个列表或表的数据源时,只需将DataMember属性设置为指定要绑定的列表或表的字符串即可。
DataGridView控件支持标准Windows窗体数据绑定模型,因此该控件将绑定到下表所述的类的实例:
1、任何实现IList接口的类,包括一维数组。
2、任何实现IListSource接口的类,例如DataTable和DataSet。
3、任何实现IBindingList接口的类,例如BindingList(Of T)类。
4、任何实现IBindingListView接口的类,例如BindingSource类。
通常绑定到BindingSource组件,并将BindingSource组件绑定到其他数据源或使用业务对象填充该组件。BindingSource组件为首选数据源,因为该组件可以绑定到各种数据源,并可以自动解决许多数据绑定问题。
DataGridView绑定数据源的几种方式:
第一种:
DataSet ds=new DataSet();this.dataGridView1.DataSource=ds.Tables[0];
第二种:
DataTable dt=new DataTable();this.dataGridView1.DataSource=dt;
第三种:
DataSet ds=new DataSet();this.dataGridView1.DataSource=ds.Tables["表名"];
第四种:
DataSet ds=new DataSet();this.dataGridView1.DataSource=ds;this.dataGridView1.DataMember="表名";//必须要设置DataMember属性,指定要绑定到DataSet中的哪张表
第五种:
ArrayList al=new ArrayList();this.dataGridView1.DataSource=al;
第六种:
Dictionary<string,string> dict=new Dictionary<string,string>();this.dataGridView1.DataSource=dict;
第七种:可以排序
DataView dv=new DataView();this.dataGridView1.DataSource=dv;
参考:
DataGridView控件用法一:数据绑定
C# dataGrid控件与dataGridView控件数据框绑方式相关推荐
- c#如何实现在datagridview中加入时间控件、numericupanddown控件
由于时间原因,再加之自己懒惰!好久没写博客了,今天写一篇关于datagridview中如何实现时间控件的文章,算是继续自己的记录的习惯! 首先,我们知道datagridview中并不提供控件,因此,我 ...
- C# 在DataGridView中,点击单元格调出 TreeView控件 或 ListBox控件
1.调出 TreeView控件 或 ListBox控件 private void deductGrid1_CellClick(object sender, DataGridViewCellEvent ...
- ASP.NET 3.5中的ListView控件和DataPager控件(一)
介绍 今天,我花了几个小时的时间研究了一下ASP.NET 3.5中的ListView控件和DataPager控件. 这两个控件是ASP.NET中新增的.非常受欢迎的控件. ListView控件集成了D ...
- 【转贴】ASP.NET 3.5中的ListView控件和DataPager控件
作者:Rick Strahl 翻译:webabcd 原文地址:http://www.west-wind.com/WebLog/posts/127340.aspx 译文地址:http://www.cn ...
- asp.net中HTML控件和web控件的简单理解
前言 在学习视频的时候,讲解者一会儿使用HTML控件,一会儿使用web控件,有一种很迷糊的感觉,他俩到底有什么区别呢,作为一个初学者,有必要分析一下. 概念 HTML控件是客户端控件,响应客户端事件, ...
- 【Asp.net】——Web控件与HTML控件的区别
在看Asp.net视频的过程中,遇到对控件的一些解释,通过查询资料,简单的说说这二者的区别. 控件位置 在VS中,HTML控件位置在: Web控件位置: 控件样式 HTML控件: 除了几个特殊的控件: ...
- WPF查找子控件和父控件方法
原文:WPF查找子控件和父控件方法 public List<T> GetChildObjects<T>(DependencyObject obj, string name) w ...
- asp.net学习之 数据绑定控件--List数据绑定控件
List控件(如 CheckBoxList.DropDownList.ListBox 和 RadioButtonList 类)继承自ListControl类,不能直接创建 ListControl 抽象 ...
- 如何扩大控件的触控响应区域
2019独角兽企业重金招聘Python工程师标准>>> 最近在做一个相当奇葩的需求:扩大控件的触控区域,不改变控件大小. 从一个大牛同事那学了一个方法,可惜只能用于父控件内只有一个子 ...
最新文章
- bzoj 3505: [Cqoi2014]数三角形
- vim配置@year12
- MAC下安装多版本JDK和切换几种方式
- [C#]手把手教你打造Socket的TCP通讯连接(一)
- python下载安装搭建
- pythonista3使用说明_Pythonista中文文档:sound
- C及opencv指针释放问题
- 神经网络与深度学习——TensorFlow2.0实战(笔记)(二)(安装TensorFlow2.0)
- sql statements_Postgresql监控sql模块之pg_stat_statements模块--部署篇
- 用python绘制心形_python小趣味_520绘制一个心形.
- DreamFactory入门指南 - 第2章安装和配置DreamFactory
- sprintf()--字串格式化命令
- mysql删除表崩溃_MySQL在删除表时I/O错误原因分析
- python教材答案第四章_python核心编程课后习题解答第四章
- STM32之输入捕获
- 解析函數論 Page 28 連續復變函數的最簡單的性質
- k8s学习笔记-环境搭建篇
- fastjson 序列化 不包括转义字符_fastjson漏洞复现
- RHadoop实践系列文章
- linux服务器安装字体,删除字体,详细步骤