c#关于DataGridView和DataTable

📅 2026/7/7 4:52:06
c#关于DataGridView和DataTable
概要工作中有要操作这两个单独每个数据的情况一、DataGridView1、行Rows复数带 sDataGridView.Rows类型DataGridViewRowCollection行集合容器含义代表的是整个控件的所有行可以用Rows【】这种来获取具体的某一行作用用来批量操作、按索引取单行、新增 / 删除行// 获取第0行整行对象 DataGridViewRow oneRow dataGridView_installParamDt.Rows[0]; // 1. 获取总行数 int total dataGridView.Rows.Count; // 2. 新增一行 dataGridView.Rows.Add(); // 3. 删除指定行 dataGridView.Rows.RemoveAt(2); // 4. 循环遍历所有行 foreach(DataGridViewRow row in dataGridView.Rows) { }Row单数无 s类型单个行对象含义表格里单独一行一行包含多个单元格 Cells上面Rows【】得到的就是这个作用操作这一行里的单元格、读取该行数据DataGridViewRow row dataGridView_installParamDt.Rows[0]; // 获取当前点击行第1列的值 string val row.Cells[1].Value.ToString();Rows 一整个文件夹装所有行Row 文件夹里单一张纸其中一行数据Cells 拿具体的值获取具体的某个单元格的值第几行的第几个单元格一般和Rows[]这种具体的第几行来搭配或者是先用Row去拿去Rows的具体行// 第3行第1列单元格 string Value dataGridView.Rows[3].Cells[1].Tostring;RowIndex事件参数DataGridViewCellEventArgs的属性e.RowIndex这个一般是个表格的点击事件这种表头或者空白RowIndex-1含义用户点击 / 操作单元格的行下标private void dataGridView_installParamDt_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { // 1. e.RowIndex 拿到点击行号 int clickRow e.RowIndex; // 2. Rows[行号] 取出单行对象 Row DataGridViewRow row dataGridView_installParamDt.Rows[clickRow]; // 3. 从单行Row里拿单元格数据 string oldValue row.Cells[1].Value.ToString(); }2.列Columns 所有列和行的Rows一样代表的是表格的所有列通过Columns[]来获取具体的一列// 总列数量 int colCount dataGridView_installParamDt.Columns.Count; // 通过下标取第0列 DataGridViewColumn col0 dataGridView_installParamDt.Columns[0]; // 通过列名称取列 DataGridViewColumn col dataGridView[参数名称]; // 隐藏某一列 dataGridView_installParamDt.Columns[5].Visible false;Column 一列和行的Row一样是具体的一列通过Columns[]来获取DataGridViewColumn col dataGridView.Columns[0];ColumnIndex和RowIndex一样也是事件参数DataGridViewCellEventArgs的属性e.RowIndexprivate void dataGridView_installParamDt_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { int r e.RowIndex; int c e.ColumnIndex; if(r -1 c -1) { // r行 c列 的单元格 string val dataGridView_installParamDt.Rows[r].Cells[c].Value.ToString(); } }二、DataTable其他的都一样只有拿某一行某一列的具体的值的时候不太一样因为DataTable 的DataRow内部自带索引器row[列索引]所以可以简写Rows[r][c]DataTable dt ru4.datatableClass.dataInstallDt; int r e.RowIndex; int c e.ColumnIndex; string v dt.Rows[r][c].ToString();26.07.06