引入数据网络视图
演练 往dgv中绑定数据的逻辑
private void Form1_Load(object sender, EventArgs e)
{
// 获得一个带有数据的仓库
/// 定义sql语句
String sql = "select * from sanguo";
/// 获得连接对象
String connStr = "Data Source=.;Initial Catalog=mySchool;Integrated Security=True";
SqlConnection conn = new SqlConnection(connStr);
/// 获得小车对象
SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
/// 获得仓库
DataSet ds = new DataSet();
/// 小车卸货到仓库
adapter.Fill(ds, "hero_table");
/// 让datagridview的数据源指向仓库中的数据表
/// 数据网络视图对象.数据源 = 仓库中的表
dgvSanguo.DataSource = ds.Tables["hero_table"];
}
}
列集合
在列集合中添加列
同时设置列对象的显示文本
当前只是添加了列
系统并不知道这个列应该显示什么数据
告知系统当前列要显示什么
根据sql语句的查询结果进行明确
根我们sql语句的查询结果的表头来与列的数据进行指向
结果
禁止自动生成列
dgvSanguo.AutoGenerateColumns = false;
关闭最左侧的列
选中整行
selectionMode
FullRowSelect
让列铺满dgv
不允许用户在最未位添加行
/// 允许allow用户user向to添加add行row在最未行添加数据
dgvSanguo.AllowUserToAddRows = false;
小车更新数据
// 直接升级小车 让小车可以返回更新数据
new SqlCommandBuilder(adapter);
// 小车更新数据
adapter.Update(ds, "hero_table");
选中的行集合
测试数量
private void button2_Click(object sender, EventArgs e)
{
// 获取选中的行集合,类似于listview控件中的selectedItems
int c = dgvSanguo.SelectedRows.Count;
MessageBox.Show(c.ToString());
}
行的单元格集合
测试单元格的数量
private void button2_Click(object sender, EventArgs e)
{
// 获取选中的行集合,类似于listview控件中的selectedItems
int c = dgvSanguo.SelectedRows[0].Cells.Count;
MessageBox.Show(c.ToString());
}
获取单元格的值
private void button2_Click(object sender, EventArgs e)
{
String v = dgvSanguo.SelectedRows[0].Cells[1].Value.ToString();
MessageBox.Show(v);
}
获取选中行在dgv中所有行的下标位置
int idx = dgvSanguo.SelectedRows[0].Index;
MessageBox.Show(idx.ToString());