[置顶] DataGridView控件---绑定数据方法
DataGridView控件是在windows应用程中显示数据最好的方式,它只需要几行简短的代码就可以把数据显示给用户,同时又支持增、删、改操作。今天将自己总结的增加数据的方法总结分享给大家
关于DataGridView的一些属性介绍大家可以参照百度百科,我在这里主要写如何用两种方法去实现绑定数据
1.非绑定模式
所谓的非绑定模式就是dataGridView控件显示的数据不是来自于绑定的数据源,而是可以通过代码手动将数据填充到DataGridView控件中,这样就为DataGridView控件增加了很大的灵活性
在此我们先来了解一下DataGridView控件有多种类型的列,而这些类型都是间接的或直接的继承了DataGridViewColumns() 类 ,下面是我们能够长用的几种类型
|
类 |
说明 |
|
DataGridViewTextBoxColumn |
与基于文本的值一起使用,在绑定到数字和字符串类型的值时自动生成 |
|
DataGridViewCheckBoxColumn |
与boolean和checkState值一起使用,在绑定到这些类型的值时自动生成 |
|
DataGridViewImageColumn |
用于显示图像,在绑定到字节数组、Image对象或Icon对象自动生成 |
|
DataGridViewButtonColumn |
用于在单元格中显示按钮,不会在绑定时自动生成,通常用来做未绑定列 |
|
DataGridViewComboBoxColumn |
用户在单元格中显示下拉列表,不会在绑定时自动生成,通常收到进行数据绑定 |
|
DataGridViewLinkColumn |
用于在单元格中显示超链接,不会在绑定时自动生成,通常需要进行手动绑定数据 |
了解了这些看下面的例子
'创建一个显示textBox的列()
Dim col1 As DataGridViewTextBoxColumn =New DataGridViewTextBoxColumn()
col1.Name = "Name"
col1.HeaderText = "姓名" '设置标题中显示的文本 Dim col3 As DataGridViewTextBoxColumn = NewDataGridViewTextBoxColumn()
col3.Name = "sex"
col3.HeaderText = "性别" '将新建的列添加到控件中
DataGridView1.Columns.Add(col1)
DataGridView1.Columns.Add(col3) '添加行
'创建新行
Dim row As DataGridViewRow = NewDataGridViewRow()
row.CreateCells(DataGridView1)
'设置单元格的值
row.Cells(0).Value = "张三"
row.Cells(1).Value = "男"
DataGridView1.Rows.Add(row)
'添加第二行
Dim row1 As String() = {"李四", "男"}
DataGridView1.Rows.Add(row1)
另外对于添加标题列也可以不用代码添加,而是通过手动添加列 操作步骤如下
1,点击DataGridView控件 就可以看到一个小三角,点击小三角弹出菜单 选择编辑列如下所示
编辑列:
同时也可以修改列的属性
2 绑定模式
将存在的数据绑定到控件上, 我是将数据库表中的数据绑定到控件上 ,我将用户表中的用户名,密码,开户人信息绑定到控件上,具体步骤如下 我在在窗体的Load事件下来完成这些步骤的
参考代码: '连接数据库
Dim cnStr As String = "PersistSecurity Info=False;User ID=sa;Initial Catalog=studentSystem;DataSource=192.168.24.74;pwd=123456"
Dim cn As SqlConnection = NewSqlConnection(cnStr)
cn.Open() '打开数据库
Dim sql AsString = "select U_ID as 用户名 ,U_passwordas 密码,U_head as 开户人 from T_user"
Dim cmd As SqlCommand = NewSqlCommand(sql, cn) Dim da As SqlDataAdapter = NewSqlDataAdapter()
da.SelectCommand = cmd Dim ds As DataSet = New DataSet()
da.Fill(ds,"T_user") '填充数据集
'绑定数据集
DataGridView1.DataSource = ds
DataGridView1.DataMember ="T_user"
运行效果图
此中运行效果和非绑定模式下显示的相同,但方法却截然不同,而我在添加标题列时是利用的SQL语句实现的
Dim sql As String ="select U_ID as 用户名 ,U_password as 密码,U_head as 开户人 from T_user" 对于这一部分,我们也可以通过不同的代码来实现它 具体代码和上述区别在于 SQL语句处Dim sql As String = "select U_ID ,U_password,U_head from T_user" 这样写,在绑定好了数据集后在设定标题列 代码如下:
'设置标题第0列
DataGridView1.Columns(0).HeaderText = "用户名"
'冻结标题 也就是标题不会随着数据的移动而消失
DataGridView1.Columns(0).Frozen = True
'添加第一列标题
DataGridView1.Columns(1).HeaderText = "姓名"
DataGridView1.Columns(1).Frozen = True
'设置第二列标题
DataGridView1.Columns(2).HeaderText = "开户人"
DataGridView1.Columns(2).Frozen = True
这样编写和我们在SQL语句中就定义标题列的效果是一样的
以上就是我在利用DataGridView控件绑定数据所尝试的两种方法!关于DataGridView控件的其他使用方法会在下面的博客中发表,欢迎指正
[置顶] DataGridView控件---绑定数据方法的更多相关文章
- DataGridVIew控件绑定数据之后的,增、插、删操作
最开始没有绑定数据,很快就实现了增.插.删操作,可是绑定数据之后,进行这些操作就会报错. 网上对这方面的资料比较少,自己摸索着找到了解决方法,也就是直接对绑定的数据进行操作,这里以DataTable为 ...
- DataGridView控件绑定数据之后,置顶操作
一个小小的置顶,就搞了半个小时,还是记录一下吧. 1.第一个问题就是datatable的插入只能是Insert DataRow,但是获取选中的行,都是DataGridViewRow,不能直接转换. 找 ...
- C# DataGridView控件绑定数据后清空数据
//1.this.dataGridView1.DataSource = null;//会将DataGridView的列也删掉 //2.this.dataGridView1.Columns.Clear( ...
- C# DataGridView控件清空数据完美解决方法
C# DataGridView控件绑定数据后清空数据在清除DataGridview的数据时: 1.DataSource为NULL(DataGridView.DataSource= null;)这样会将 ...
- 转:C# DataGridView控件清空数据出错解决方法
C# DataGridView控件绑定数据后清空数据在清除DataGridview的数据时: 1.DataSource为NULL(DataGridView.DataSource= null;)这样会将 ...
- 在aspx页动态加载ascx页面内容,给GridView控件绑定数据
在aspx页动态加载ascx页面内容 //加载ascx页面内容Control c1 = this.Page.LoadControl("WebUserControl1.ascx"); ...
- DataGridView控件绑定数据源
前言: 近期听说DataGridView控件能直接绑定数据源.而不用穿越这层那层的忍辱负重.获取数据.真是高兴的屁颠屁颠的.后来一想二狗肯定不会弄.特意写了一个笨蛋版的教程--也算记录生活.欢度端午了 ...
- 将C#datagridview控件的数据导出到Excel中
1.添加引用Microsoft.Office.Interop.Excel. 2.程序代码引用using Excel = Microsoft.Office.Interop.Excel; 3.控件事件代码 ...
- .net mvc------下拉列表DropDownList控件------绑定数据
下拉列表 以性别为例 绑定可以了,可以显示了,但有些地方就能传值,有些地方就会出错提示,如有大神请指教.... 错误如下: 具有键"sex"的 ViewData 项属于类型&quo ...
随机推荐
- 详解Android动画之Frame Animation(转)
在开始实例讲解之前,先引用官方文档中的一段话: Frame动画是一系列图片按照一定的顺序展示的过程,和放电影的机制很相似,我们称为逐帧动画.Frame动画可以被定义在XML文件中,也可以完全编码实现. ...
- JVM——类的加载过程
附一张图方便理解,一个类的执行过程 类的加载过程,简明的来说 类装饰器就是寻找类的字节码文件并构造出类在JVM内部表示的对象组件.在Java中,类装载器把一个类装入JVM中,要经过以下步骤: 装载:查 ...
- 配置Linux 11G R2 RAC NTP服务
安装Oracle 11g RAC时,我们需要配置ntp服务.在使用虚拟机的情况下对于时钟同步方式的配置有很多种方式,可以使用vmware自带的时钟同步功能,也可以直接将本地的一个节点用作时间服务器.本 ...
- Spring aop 实现异常拦截
使用aop异常挂载功能可以统一处理方法抛出的异常,减少很多重复代码,实现如下: 1.实现ThrowAdvice public class ExceptionHandler implements Thr ...
- linearlayout 水平垂直居中
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&q ...
- 企业服务总线Enterprise service bus介绍
企业服务总线(Enterprise service bus). 以往企业已经实现了很多服务, 构成了面向服务的架构,也就是我们常说的SOA. 服务的参与双方都必须建立1对1 的联系,让我们回顾一下SO ...
- 在Eclipse中用TODO标签管理任务
在Eclipse中用TODO标签管理任务 Elipse为Java项目的时候,有一个很人性化的“任务管理”功能,利用这个功能可以方便地将项目中一些需要处理的任务记录下来.先来看看“任务管理”是怎么使用的 ...
- LoadRunner error -27498
URL=http://172.18.20.70:7001/workflow/bjtel/leasedline/ querystat/ subOrderQuery.do错误分析:这种错误常常是因为并发压 ...
- Sikuli简介
Sikuli是利用屏幕上能够看到的图型做自动化,能够通过这个手段来识别和控制元素,非常适合和Selenium和Robot Framework一起结合起来做自动化. 1.Sikuli主页 http:// ...
- win8 VS控件信息
<TextBlock x:Name="button_1" HorizontalAlignment="Center" TextWrapping=" ...