DataGridView数据控件
开发WinForms应用程序需要使用数据库存储数据。使用DataGridView控件可以快速地将数据库中的数据显示给用户,并且可以通过DataGridView控件直接对数据进行操作,大大增强了操作数据库的效率。
1 DataGridView控件概述
DataGridView控件提供一种强大而灵活的以表格形式显示数据的方式。可以使用DataGridView控件来显示少量数据的只读视图,也可以对其进行缩放以显示特大数据集的可编辑视图。使用DataGridView控件,可以显示和编辑来自多种不同类型的数据源的表格数据。将数据绑定到DataGridView控件非常简单和直观,在大多数情况下,只需设置DataSource属性即可。DataGridView控件具有极高的可配置性和可扩展性,他提供了大量的属性、方法和事件,可以用来对该控件的外观和行为进行自定义。当需要在Windows窗体应用程序中显示表格数据时,首先考虑使用DataGridView控件。若要以小型网格显示只读或者使用户能够编辑具有数百万条记录的表。DataGridView控件将提供可以方便的进行编程以及有效利用内存的解决方案。
2 在DataGridView控件中显示数据
通过DataGridView控件显示数据表中的数据,首先需要使用DataAdapter对象查询指定的数据,然后通过该对象的Fill方法填充DataSet,最后设置DataGridView控件的DataSource属性为DataSet的表格数据。DataSource属性用于获取或设置DataGridView控件显示数据的数据源。
在用DataGridView控件显示数据时,可以将Columns[列的索引号]属性的Visible属性设置为False,以隐藏指定的列。
语法:
public Object DataSource {get: set; }
//属性值:包含DataGridView控件要显示的数据对象
实例 :
private void Form1_Load(object sender, EventArgs e)
{
string ConStr = "Data Source=.;Initial Catalog=TJHIS;Integrated Security=True";
SqlConnection conn = new SqlConnection(ConStr);
conn.Open();
try
{
if (conn.State == ConnectionState.Open)
{
DataSet ds = new DataSet();
SqlDataAdapter sda = new SqlDataAdapter("select * from student ", conn);
sda.Fill(ds,"student");
dataGridView1.DataSource = ds.Tables[0];
}
}
catch (Exception)
{
throw;
}
}
效果:
3 获取DataGridView控件中的当前单元格
若要与DataGridView进行交互,通常要求通过编程方式发现哪个单元格处于活动状态。如果需要更改当前单元格,可通过DataGridView控件的CurrentCell属性来获取当前单元格信息。
CurrentCell属性用于获取当前处于活动状态的单元格。
可以通过DataGridView控件的SelectedCells属性获取该控件中被选中的单元格信息。
语法:
public DataGridViewCell CurrentCell {get; set; }
//属性值:表示当前单元格的DataGridViewCell ,如果没有当前单元格,则为空引用。默认值是第一列中的第一个单元格,如果控件中没有单元格,则为空引用。
实例:
DataSet ds = null;
SqlDataAdapter sda;
SqlConnection conn;
private void Form1_Load(object sender, EventArgs e)
{
string ConStr = "Data Source=.;Initial Catalog=TJHIS;Integrated Security=True";
conn = new SqlConnection(ConStr);
conn.Open();
try
{
if (conn.State == ConnectionState.Open)
{
sda = new SqlDataAdapter("select * from student ", conn);
ds = new DataSet();
sda.Fill(ds,"student");
dataGridView1.DataSource = ds.Tables[0];
}
}
catc