首页 > 代码库 > DataGridView的使用和批量修改

DataGridView的使用和批量修改

DataGridView的属性:
AllowUserToAddRows:如果为true允许用户添加行,false不允许用户添加行
ReadOnly:true表示只读、不能修改单元格中的值,false可以对单元格进行修改
SelectionMode:FullRowSelect表示点击单元格选择整行
MultiSelect:true表示可以选多行,false表示不可以选多行
DataSource:绑定数据源
Colunms:列的集合

DataGridView中列的属性:
DataPropertyName:设置要和数据源中的哪个列进行绑定
HeaderText:设置当前列的名称
Visible:设置当前列是否可见
Frozen:设置当前列是否冻结(与excel中的冻结窗体类似)
ReadOnly:设置当前列是否只读

 获取选中的行,列的单元格

this.dgvShow.CurrentRow.Cells[0].Value.ToString();//获取dgv里面选中的列的第一个值

//SelectedRows被选中的行的集合,SelectedRows[0]获取集合中的第一行
 //Cells代表数据行中单元格的集合,Cells[0]获取第一个单元格
  this.dgvStudents.SelectedRows[0].Cells[0].Value.ToString();

public partial class DataGridView的使用 : Form
    {
        public DataGridView的使用()
        {
            InitializeComponent();
        }

        SqlDataAdapter sda = null;
        DataSet ds = null;

        //数据源为DataTable
        //private void DataGridView的使用_Load(object sender, EventArgs e)
        //{
        //    string sql = "select StuNo,StuName,StuAge,StuSex from Student";
        //    SqlConnection conn = DBHelper.GetConnection();
        //    sda = new SqlDataAdapter(sql, conn);
        //    ds = new DataSet();
        //    sda.Fill(ds);
        //    DataTable table = ds.Tables[0];
        //    //给DataGridView绑定数据源
        //    this.dgvStudents.DataSource = table;
        //}

        //数据源为DataView
        private void DataGridView的使用_Load(object sender, EventArgs e)
        {
            string sql = "select StuNo,StuName,StuAge,StuSex from Student";
            SqlConnection conn = DBHelper.GetConnection();
            sda = new SqlDataAdapter(sql, conn);
            ds = new DataSet();
            sda.Fill(ds);
            DataTable table = ds.Tables[0];
            //给DataGridView绑定数据源
            DataView dv = table.DefaultView;
            dv.Sort = "StuAge desc";//排序
            dv.RowFilter = "StuAge>22";//筛选行
            this.dgvStudents.DataSource = dv;
        }

        //批量修改
        //优点:功能强大、操作简单、代码简洁
        //缺点:1、只能操作一个表  2、操作的数据集中必须包含主键
        private void btnUpdate_Click(object sender, EventArgs e)
        {
            SqlCommandBuilder builder = new SqlCommandBuilder(sda);
            sda.Update(ds);
            MessageBox.Show("修改成功!");
        }
    }