c# winFrom中 dataGridView控件 在列表内直接编辑数据,然后保存到数据库

本文介绍了如何在C# WinForm应用程序中使用dataGridView控件实现直接在列表内编辑数据,并详细讲解了将这些修改实时同步保存到数据库的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自学C#,前几天学到dataGridView控件 学完后 就想知道怎么在列表内直接编辑数据,然后保存到数据库中,就在网上看了看,答案都不是很理想,自己慢慢琢磨然后琢磨了出来   第一次发博客 就像记录自己慢慢成长  有啥不好的还请谅解~
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyFirstBlogsContent
{
    //新建一个UserInfo类 用于转换类型
    class UserInfo
    {
        public int  UserId { get; set; }
        public string UserName { get; set; }
        public string UserPwd { get; set; } 
        public int Age { get; set; } 
    }
}

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace MyFirstBlogsContent
{
    public partial class Form1 : Form
    {
        public Fo
C# Winform中的DataGridView控件,当需要隐藏所有行以提高效率时,有几种策略可以考虑: 1. **批量操作**:直接调用`HideAllRows()`方法,这是最直接的方式。这个方法会一次性的将所有行设为不可见,避免逐行进行操作可能导致的额外开销。 ```csharp dataGridView.Rows.Cast<DataGridViewRow>().ToList().ForEach(row => row.Visible = false); ``` 或者 ```csharp dataGridView.Rows.Clear(); dataGridView.DataSource = null; dataGridView.DataSource = dataGridView.Columns.Cast<DataGridViewColumn>().SelectMany(c => Enumerable.Empty<object[]>()).ToDataTable(); // 创建一个空表格并绑定回去 ``` 2. **使用虚拟模式**(Virtual Mode):如果数据量非常大,启用虚拟模式可以在内存中只保留当前可视范围的数据,隐藏行时只需要调整索引映射即可,而不影响其他部分的数据。 3. **事件处理**:避免在UI线程上进行密集型计算,可以捕获`Scroll`或`CellPainting`事件,在适当的时候更改行的状态。 ```csharp dataGridView.CellPainting += (sender, e) => { if (!e.RowIndex.IsNewRow && !dataGridView.Rows[e.RowIndex].IsVisible) e.Handled = true; // 隐藏行时不进行绘制 }; ``` 4. **延迟更新**:如果数据源是数据库或其他远程来源,可以采用延迟更新策略,只有在用户确实滚动到隐藏的行时才去请求数据。 5. **性能监控**:始终关注性能监视器,确保你的优化措施真正带来了性能提升,避免过度优化导致的复杂性和维护困难。 在使用上述方法时,记得考虑潜在的用户交互体验,确保隐藏过程尽可能平滑并且不影响用户的感知。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值