C# DataGridView控件与ListView控件的对比学习(一):DataGridView控件学习

本文介绍了C#中DataGridView控件的基本使用,包括其特性、数据绑定、用户交互操作如编辑和删除,以及列宽行高自动调整、冻结行列等功能。文章还提到了如何手动添加表头和在行末添加编辑、删除按钮的操作。
摘要由CSDN通过智能技术生成

一、DataGridView控件介绍:

    1、定义:

        DataGridView控件是一种方便用户浏览和编辑来自不同类型数据源的数据的一种表格式控件。从这个定义中,我们可以获取几点有关DataGridView控件的特性。首先,DataGridView控件对于获取的数据有两个重要的功能:第一,浏览;第二,编辑。当然,重点学习的肯定是“编辑”这一功能;其次,DataGridView控件可以处理来自不同类型数据源的数据,也就是说,对于String类型、int类型、float类型、char类型等等数据类型来说,DataGridView控件都可以处理;最后,DataGridView控件是一种表格式控件,有行、有列、有单元格等等。

    2、绑定数据:

    我们从数据库中获取数据的最后几步是:


  
  
  
1
2
3
4
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);
return dt;  

    所以我们可以使用以下步骤来给DataGridView控件绑定数据:


  
  
  
dataGridView1.DataSource = dt;

    如果数据源是一个List呢,或者一个数组,那么还可以使用dataGridView1.DataSource=list来设置吗?(可以尝试一下)

    注意,在上述步骤中填充的是DataTable,如果填充的是DataSet,如下所示:


  
  
  
using (OleDbConnection myConn = new OleDbConnection(strCon))
using (OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn))
{
    myConn.Open();
    myCommand.Fill(ds);
}
if (ds == null || ds.Tables.Count <= 0) return null;
return ds.Tables[0];

    因为,DataSet类中包含DataTable,所以可以使用ds.Tables[0]来获取DataSet中的第一个DataTable;

进阶:

    如果数据量过大时,我们可能会使用到显示多少条,以及选中的是第几条数据,这时,我们可以使用到BindingNavigator控件和BindingSource控件,其中,BindingNavigator控件时用来导航的,BindingSource控件用来充当两者的数据源,也就是说,当使用BindingNavigator控件作为DataGridView控件的导航时,两者必须是同一数据源。使用方法如下:


  
  
  
this.bindingSource1.DataSource = GetDataFromSql();
dataGridView1.DataSource = this.bindingSource1;
this.bindingNavigator1.BindingSource = this.bindingSource1;

    3、操作DataGridView控件:

        之前说过,DataGridView控件可以处理来自不同数据类型的数据源中的数据,而且该控件是一种表格式控件,有行、有列、有单元格。在这儿需要注意,默认情况下,单元格的值的类型为object。当被绑定数据后,会设置它的ValueType属性,它包含的单元格的ValueType也随之更新。

  • 1.DataGridView取得或者修改当前单元格的内容:

    当前单元格指的是 DataGridView焦点所在的单元格,它可以通过 DataGridView对象的 CurrentCell属性取得。当前单元格不存在的时候返回null。

  
  
  
//
Console.WriteLine(DataGridView1.currentCell.Value);
// Index
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值