在Winform中,获取DataGrid当前选定行对应的数据 (转)

我们知道,当使用Datagrid 的时候,往往会使用DataTable,DataSet,DataView作为其数据源,那么当填充后,我们能不能将DataGrid选中行对应的DataSet的数据取出来?

每个 Form 都有一个 BindingContextBindingContext 负责管理控件所绑定到的数据集合。

可以通过 BindingContext(Me.DataGrid1.Datasource) 可以得到BindingManagerBase 对象,该对象允许对 Windows 窗体上绑定到相同数据源的数据绑定控件进行同步。

BindingManagerBase 包含有Position,Count分别指示数据源的当前位置和记录数。
BindingManagerBase 还有一个属性就是Current,它就代表当前记录。所以可以通过该属性获取DataGrid选中行对应的DataSet的数据,如:

DataRowView drv = BindingContext(this.DataGrid1.DataSource).Current;

this.textbox1.text=drv[0].tostring();

或者用datagrid.resouce[0][0].tostring
的方式

WinForm 是 Microsoft .NET Framework 的一个用户界面库,主要用于Windows应用程序开发。GridControl 是其一种控件,它提供了一个二维表格布局,常用于显示和编辑数据。 要在 WinForm 的 GridControl 修改数据并上传到 MongoDB,你需要按照以下步骤操作: 1. **设置 GridControl**: 首先,在 Form 设计时添加一个 DataGridView 控件替换 GridControl,因为它更强大且功能完善。将列绑定到你要显示的数据源(比如 DataTable 或 LINQ 查询)。 2. **数据改变处理**: 当用户在 DataGridView 修改了单元格时,可以添加事件处理器 `CellValueChanged` 或 `CellValueChanged` 来获取更改后的值。例如: ```csharp private void dataGridView_CellValueChanged(object sender, DataGridViewCellEventArgs e) { // 获取修改的单元格及其值 string updatedValue = dataGridView[e.RowIndex, e.ColumnIndex].Value.ToString(); // ... 进进一步处理,如验证、更新数据库等 } ``` 3. **连接 MongoDB**: 使用 MongoDB C#驱动程序 (MongoDB.Driver),连接到你的 MongoDB 服务器。创建或打开数据库和集合,并准备插入文档。 4. **保存修改**: 在单元格值修改事件处理结束后,你可以根据需要编写代码将修改后的数据插入到 MongoDB: ```csharp MongoClient mongoClient = new MongoClient("mongodb://localhost:27017"); var database = mongoClient.GetDatabase("your_database_name"); var collection = database.GetCollection<BsonDocument>("your_collection_name"); // 将 DataGridView 换为 BsonDocument BsonDocument document = new BsonDocument(); foreach (DataGridViewRow row in dataGridView.Rows) { if (!row.IsNewRow) { int index = Convert.ToInt32(row.Cells["YourKeyColumn"].Value); // 替换 "YourKeyColumn" 为你实际的关键字段 document[index] = new BsonDocument(row.Cells.ToDictionary(cell => cell.HeaderText, cell => cell.Value)); } } // 更新数据 UpdateDocumentResult result = collection.ReplaceOneAsync(document, document).Result; ``` 5. **错误处理与日志记录**: 添加适当的异常处理和日志记录,以便在出现问题时能够追踪。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值