DataGridView控件——绑定数据

DataGridView控件是在Windows应用程序中显示数据的最好的方式,下面就来简单介绍一下这个控件。


一、非绑定模式

所谓的非绑定模式就是dataGridView控件显示的数据不是来自于绑定的数据源,而是可以通过代码手动将数据填充到DataGridView控件中

方法一、直接在控件上添加

DataGridView控件——绑定数据_第1张图片

也可以在修改列的属性

DataGridView控件——绑定数据_第2张图片

方法二、代码编写

 '创建一个显示textBox 列
        Dim col1 As DataGridViewTextBoxColumn = New DataGridViewTextBoxColumn()
        col1.Name = "CardNo"
        col1.HeaderText = "卡号"  '设置标题中显示的文本

        Dim col2 As DataGridViewTextBoxColumn = New DataGridViewTextBoxColumn()
        col2.Name = "StudentNo"
        col2.HeaderText = "学号"

        '将新建的列添加到控件中
        DataGridView1.Columns.Add(col1)
        DataGridView1.Columns.Add(col2)

        '添加第一行
        Dim row As DataGridViewRow = New DataGridViewRow()
        row.CreateCells(DataGridView1)
        '设置单元格的值
        row.Cells(0).Value = "1"
        row.Cells(1).Value = "14140141009"
        DataGridView1.Rows.Add(row)

        '添加第二行
        Dim row1 As String() = {"2", "14140141008"}
        DataGridView1.Rows.Add(row1)
    End Sub
最后效果

DataGridView控件——绑定数据_第3张图片

二、绑定数据源

将存在的数据绑定到控件上,机房重构这个项目中是将数据库中的数据绑定在了控件上

方法一、代码


 '连接数据库省略,其中sql语句这样写
        Dim sql As String = "select CardNo as 卡号 ,StudentNo as 姓名 from Line_info"
        DataGridView1.DataSource = table '将数据库返回的表绑定


还可以自己设置列标题

'设置第0列标题  
        DataGridView1.Columns(0).HeaderText = "卡号"
        '冻结标题  也就是标题不会随着数据的移动而消失  
        DataGridView1.Columns(0).Frozen = True
        '添加第1列标题  
        DataGridView1.Columns(1).HeaderText = "学号"
        DataGridView1.Columns(1).Frozen = True


方法二、直接在控件上绑定数据

详见如下博客:

datagridview的使用

问题:无法删除未提交的新行/不能清除此列 

在绑定数据的这种方法中,经常会出现如下问题:

DataGridView控件——绑定数据_第4张图片

当使用这句话清空时就会报错

DataGridView1.Rows.Clear()
或者

DataGridView1.DataSource = DBNull.Value

原因:如果是绑定数据这种方法,用上面的语句就会报错

解决办法:

      Dim dt As New DataTable
           dt = DataGridView1.DataSource
           dt.Rows.Clear()
           DataGridView1.DataSource = dt
如果是C#就用下面的代码

DataTable dt = (DataTable)dgvData.DataSource;
           dt.Rows.Clear();
           dgvData.DataSource = dt;


总结

在此我们先来了解一下DataGridView控件有多种类型的列 ,而这些类型都是间接的或直接的继承了DataGridViewColumns(),下面是我们能够长用的几种类型

DataGridView控件——绑定数据_第5张图片

说明

DataGridViewTextBoxColumn

与基于文本的值一起使用,在绑定到数字和字符串类型的值时自动生成

DataGridViewCheckBoxColumn

booleancheckState值一起使用,在绑定到这些类型的值时自动生成

DataGridViewImageColumn

用于显示图像,在绑定到字节数组、Image对象或Icon对象自动生成

DataGridViewButtonColumn

用于在单元格中显示按钮,不会在绑定时自动生成,通常用来做未绑定列

DataGridViewComboBoxColumn

用户在单元格中显示下拉列表,不会在绑定时自动生成,通常收到进行数据绑定

DataGridViewLinkColumn

用于在单元格中显示超链接,不会在绑定时自动生成,通常需要进行手动绑定数据



如下是几篇很好的博客:

C#中DataGridView控件使用大全


DataGridView控件使用大全

你可能感兴趣的:(DataGridView控件——绑定数据)