C#获取DataGridView选中行数据及更新方法

4星 · 超过85%的资源 需积分: 49 30 下载量 63 浏览量 更新于2024-09-15 收藏 2KB TXT 举报
"这篇文章主要介绍了如何在C#编程中获取DataGridView控件中选中行的值,包括单个单元格的值以及整个行的数据。它提供了两种方法:一种是通过SelectedCells属性获取单个单元格的值,另一种是通过CellClick事件处理程序获取整行的值并更新数据库中的数据。" 在Windows Forms应用开发中,DataGridView控件常用于展示和编辑表格数据。要获取用户在DataGridView中选中行的值,可以按照以下方法进行操作: 1. 获取单个选中单元格的值: ```csharp // 获取选中单元格的第一个值 String str = this.dataGridView1.SelectedCells[0].Value.ToString(); ``` 这段代码会返回当前选中的第一列的值。如果有多行被选中,但只获取了第一行选中的单元格。 2. 获取当前活动单元格的值: ```csharp // 获取当前活动单元格的值 string strUserName = this.dataGridView1.CurrentCell.Value.ToString(); ``` CurrentCell属性提供了对当前被激活(通常由焦点指示)的单元格的访问,即使该单元格不在选中的行中。 为了获取整行的数据,可以利用DataGridView的CellClick事件: ```csharp // DataGridView单元格点击事件处理程序 private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e) { try { // 更新日期选择器的值 dateTimePicker.Value = (DateTime)dataGridView.Rows[e.RowIndex].Cells[1].Value; // 更新文本框的值 txtColumn1.Text = dataGridView.Rows[e.RowIndex].Cells[2].Value.ToString(); txtColumn2.Text = dataGridView.Rows[e.RowIndex].Cells[3].Value.ToString(); txtColumn3.Text = dataGridView.Rows[e.RowIndex].Cells[4].Value.ToString(); txtColumn4.Text = dataGridView.Rows[e.RowIndex].Cells[5].Value.ToString(); } catch { } } ``` 当用户点击DataGridView的任何单元格时,此事件会被触发。这里假设了第二列的数据类型是DateTime,其他列的数据类型转换为字符串并显示在相应的文本框中。 此外,文章还展示了如何在用户点击按钮时更新数据库中的记录: ```csharp // 按钮点击事件处理程序 private void updateButton_Click(object sender, EventArgs e) { try { // 获取当前选中的行索引 int index = (int)dataGridView.CurrentCell.RowIndex; // 假设cnn是数据库连接对象,dataset1是包含表格数据的数据集,"Table1"是数据表名称 cnn.Open(); dataset1.Tables["Table1"].Rows[index]["ColumnName1"] = dateTimePicker.Value; // 更新日期字段 dataset1.Tables["Table1"].Rows[index]["ColumnName2"] = txtColumn1.Text.Trim(); // 更新文本字段 dataset1.Tables["Table1"].Rows[index]["ColumnName3"] = txtColumn2.Text.Trim(); // 更新文本字段 dataset1.Tables["Table1"].Rows[index]["ColumnName4"] = txtColumn3.Text.Trim(); // 更新文本字段 dataset1.Tables["Table1"].Rows[index]["ColumnName5"] = txtColumn4.Text.Trim(); // 更新文本字段 // 保存更改到数据库 // dataset1接受更新操作,例如:dataset1.AcceptChanges() 或者 使用DataAdapter 更新数据源 } catch { } finally { // 关闭数据库连接 cnn.Close(); } } ``` 在上述代码中,首先获取当前选中行的索引,然后根据索引更新数据集中对应行的字段值。最后,使用DataAdapter或直接调用dataset1.AcceptChanges()来将这些更改保存回数据库。 这篇文章详细介绍了在.NET Framework的Windows Forms应用中,如何通过C#代码从DataGridView控件中获取选中行的值,并在用户交互时更新这些值到数据库。这对于处理用户输入和表格数据的同步是非常关键的。