C#获取DataGridView选中行数据及更新方法
4星 · 超过85%的资源 需积分: 49 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控件中获取选中行的值,并在用户交互时更新这些值到数据库。这对于处理用户输入和表格数据的同步是非常关键的。
2023-09-12 上传
2023-06-09 上传
2023-03-14 上传
2020-09-07 上传
2023-06-06 上传
2023-06-07 上传
dongliyuan198911
- 粉丝: 0
- 资源: 6
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍