Samar135 2024-09-26 21:19 采纳率: 0%
浏览 1

关于#c##的问题:#c#窗口使用DataGridView控件进行修改数据然后刷新怎么写

#c#窗口使用DataGridView控件进行修改数据然后刷新怎么写

//这个是调用
 private void btnXiugai_Click(object sender, EventArgs e)
 {
     Modify m = new Modify();
     FrmNum frm = new FrmNum();
     m.id = dgvNum.SelectedRows[0].Cells[0].Value.ToString();
     m.name = dgvNum.SelectedRows[0].Cells[1].Value.ToString();
     m.xb = dgvNum.SelectedRows[0].Cells[2].Value.ToString();
     m.nj = dgvNum.SelectedRows[0].Cells[3].Value.ToString();
     m.time = dgvNum.SelectedRows[0].Cells[4].Value.ToString();
     m.ah = dgvNum.SelectedRows[0].Cells[5].Value.ToString();
     frm.Show();
     m.Show();
 }


//这个就是窗口的类(修改)
 string a = "server=.;database=MySchool;uid=sa;pwd=hebiao123456";
 public string id = string.Empty;
 public string name = string.Empty;
 public string xb = string.Empty;
 public string nj = string.Empty;
 public string time = string.Empty;
 public string xl = string.Empty;
 public string ah = string.Empty;
 private void btnBaoc_Click(object sender, EventArgs e)
 {
     SqlConnection b=new SqlConnection(a);
     b.Open();
     try
     {
         txtId.Text = id;
         txtname.Text = name;
         if (xb == "男")
         {
             rdoNan.Checked = true;
         }
         if (xb == "女")
         {
             rdoNv.Checked = true;
         }
         if (nj == "S1")
         {
             rdoS1.Checked = true;
         }
         if (nj == "S2")
         {
             rdoS2.Checked = true;
         }
         if (nj == "S3")
         {
             rdoS3.Checked = true;
         }
         if (xl == "幼儿园")
         {
             cboXueli.SelectedIndex = 1;
         }
         if (xl == "小学")
         {
             cboXueli.SelectedIndex = 2;
         }
         if (xl == "初中")
         {
             cboXueli.SelectedIndex = 3;
         }
         if (xl == "高中")
         {
             cboXueli.SelectedIndex = 4;
         }
         if (xl == "大学")
         {
             cboXueli.SelectedIndex = 5;
         }
         if (ah == "吃饭,")
         {
             chkEat.Checked = true;
         }
         if (ah == "打游戏,")
         {
             chkPlay.Checked = true;
         }
         if (ah == "睡觉,")
         {
             chkSleep.Checked = true;
         }
         time = this.dtpTime.Value.ToString("yyyy-MM-dd");
         string xg = $"update Student set StudentName='{name}', Sex='{xb}', Gradeld='{nj}',BornDate='{time}',Hobby='{ah}', Education='{xl}' where StudentNo='{id}'";
         SqlCommand xg2 = new SqlCommand(xg, b);
         int xg3 = xg2.ExecuteNonQuery();
         if (xg3 > 0)
         {
             MessageBox.Show("修改成功");
        
         }
         else
         {
             MessageBox.Show("修改失败");
         }
     }
     catch (Exception)
     {

         throw;
     }
     b.Close();
 }
  • 写回答

1条回答 默认 最新

  • 一轮明月照丘壑 2024-09-26 21:20
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    根据你的描述,看起来你正在使用DataGridView控件在C#的Windows窗体应用程序中显示数据,并且你想要让用户能够编辑数据并刷新显示。下面是一个基本的步骤和代码示例来实现这个功能:

    步骤:

    1. 启用DataGridView的编辑模式:允许用户通过点击单元格来编辑数据。
    2. 保存编辑的数据:在用户完成编辑后,将更改的数据保存到数据库。
    3. 刷新DataGridView:从数据库重新获取数据,并更新DataGridView的显示。

    代码示例:

    启用编辑模式

    在DataGridView的MouseDown事件中检查是否点击了某个单元格,然后开启编辑模式。你可以在窗体加载时通过代码订阅事件。

    private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left) // 左键点击时开启编辑模式
        {
            dataGridView1.BeginEdit(true); // 开始编辑选中的单元格或行
        }
    }
    

    保存编辑的数据

    在用户完成编辑后,你可以捕获DataGridView的CellEndEdit事件来保存更改的数据。这里你需要编写代码将数据保存到数据库。你已经有了这部分的代码(在btnBaoc_Click方法中)。

    刷新DataGridView

    在保存数据之后,你需要重新查询数据库以获取最新的数据,并将这些数据绑定到DataGridView上。你可以使用数据适配器或任何你喜欢的方法来执行此操作。一旦数据更新完成,你可以调用dataGridView1.Refresh()方法来刷新显示。你也可以考虑使用绑定源来自动更新显示。

    注意点:

    • 确保在编辑模式下禁用可能干扰用户编辑的其他功能(如按钮点击事件)。
    • 在保存数据到数据库之前验证输入数据的有效性。
    • 考虑使用事务来确保数据的完整性和一致性。
    • 在刷新DataGridView之前确保数据库操作已经完成,以避免显示不一致的数据。

    你的代码示例中似乎有一些逻辑和命名上的问题,请根据你的具体需求进行相应的调整。以上是一个大致的方向和思路,希望能对你有所帮助!

    评论

报告相同问题?

问题事件

  • 创建了问题 9月26日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?