C#获取DataGridView选中行数据及更新方法
4星 · 超过85%的资源 需积分: 49 120 浏览量
更新于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
最新资源
- node-selenium-driver-filedetector:具有文件检测器绑定的节点网络驱动程序
- spring-boot-graphql
- remixed2recipes
- 星级酒店预定主题响应式模板
- 企业门户网站管理系统,包括前台展示、后台管理、后端服务(Node.js、Koa、sequelize、MySQL),前.zip
- cordova-plugin-mmedia:千禧一代媒体广告的CordovaPhoneGap
- Lita:公司聊天室的机器人伴侣-开源
- eslint-plugin-jsx-extras:一组Eslint插件,用于基于应用程序的特定JSX规则
- bls_custom:粘在一起将Blocky Survival Minetest服务器固定在一起
- 进口玻璃磨边机PLC程序.rar
- Schizo-crx插件
- angular-starter:基于angularJS框架的全初始化前端项目
- javascript-dom-exercises-2.3
- TheGrid:按键游戏
- autotrader-scraper:用于刮擦自动交易器网站以获取汽车图像的工具。 我用它们来训练神经网络
- 库:通用功能的声明。 存储库的内容不属于GNU C库