WinForm小技巧之向下复制行和编辑行

2024-08-31 01:44

本文主要是介绍WinForm小技巧之向下复制行和编辑行,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

WinForm小技巧之向下复制行

文章目录

  • WinForm小技巧之向下复制行
  • 场景
  • 代码
  • 编辑
    • 场景
    • 代码


场景

在这里插入图片描述
当我点击向下增加行按钮,会在表格中添加一行一摸一样的

代码

按钮点击事件

/// <summary>/// 向下新增/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void addSpaceBtn_Click(object sender, EventArgs e){// 假设你的DataGridView的数据源是一个DataTableDataTable dt = (DataTable)dataGridView_machine.DataSource;// 获取最后一行的数据DataRow lastRow = dt.Rows[dt.Rows.Count - 1];// 在DataTable中添加一个新行DataRow newRow = dt.NewRow();string condition = " set ";//用于添加字段var para = new List<MySql.Data.MySqlClient.MySqlParameter>();// 将最后一行的数据复制到新行for (int i = 0; i < lastRow.ItemArray.Length; i++){string columnName = dt.Columns[i].ColumnName;if (!columnName.Equals("ID")){newRow[columnName] = lastRow[columnName]; // 使用列名来设置新行的值para.Add(new MySql.Data.MySqlClient.MySqlParameter(columnName, newRow[columnName]));}}//id 自增一string sqlmaxid = String.Format("select max(ID) as maxId from {0}", Table_lab_test_schedule.table_name);var maxid = DataBase.Get_LabratoryManage(sqlmaxid);int ID = int.Parse(maxid.Rows[0]["maxId"].ToString()) + 1;para.Add(new MySql.Data.MySqlClient.MySqlParameter(Table_lab_test_schedule.ID, ID.ToString()));// 将新行添加到DataTabledt.Rows.Add(newRow);//添加数据库string sql = String.Format("insert into {0} ({1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15},{16},{17},{18},{19},{20},{21},{22},{23},{24},{25},{26},{27},{28},{29},{30},{31})values(@{1},@{2},@{3},@{4},@{5},@{6},@{7},@{8},@{9},@{10},@{11},@{12},@{13},@{14},@{15},@{16},@{17},@{18},@{19},@{20},@{21},@{22},@{23},@{24},@{25},@{26},@{27},@{28},@{29},@{30},@{31})", Table_lab_test_schedule.table_name, Table_lab_test_schedule.keshi, Table_lab_test_schedule.Type, Table_lab_test_schedule.jinji, Table_lab_test_schedule.mingcheng, Table_lab_test_schedule.shuxing, Table_lab_test_schedule.User, Table_lab_test_schedule.Xinghao, Table_lab_test_schedule.Test_from, Table_lab_test_schedule.Test_to, Table_lab_test_schedule.No, Table_lab_test_schedule.Quatity, Table_lab_test_schedule.tiaojian, Table_lab_test_schedule.jieshoudate, Table_lab_test_schedule.Tester, Table_lab_test_schedule.Jihua_from, Table_lab_test_schedule.Jihua_to, Table_lab_test_schedule.Yuchuli_Mach, Table_lab_test_schedule.Yuchuli_from, Table_lab_test_schedule.Yuchuli_to, Table_lab_test_schedule.Test_Mach, Table_lab_test_schedule.Check_Mach, Table_lab_test_schedule.Check_from, Table_lab_test_schedule.Check_to, Table_lab_test_schedule.result, Table_lab_test_schedule.yichang, Table_lab_test_schedule.storeplace, Table_lab_test_schedule.storestate, Table_lab_test_schedule.tuiyangamount, Table_lab_test_schedule.tuiyangremark, Table_lab_test_schedule.Pause, Table_lab_test_schedule.ID);if (!DataBase.Deal_LabratoryManage(sql, para.ToArray())){new WarningDialogForm("操作失败!").ShowDialog();return;}// 更新DataGridView以显示新添加的行dataGridView_machine.DataSource = null; // 清除数据源绑定dataGridView_machine.DataSource = dt;   // 重新绑定数据源LoadTable();//重新加载数据}

编辑

场景

在这里插入图片描述

代码

给单元格添加事件

 /// <summary>/// 用户编辑单元格结束/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void dataGridView_machine_CellEndEdit(object sender, DataGridViewCellEventArgs e){// 获取当前编辑的单元格DataGridViewCell cell = dataGridView_machine[e.ColumnIndex, e.RowIndex];// 获取编辑的列名string columnName = dataGridView_machine.Columns[e.ColumnIndex].Name;if (columnName.Equals("check")){return;}// 获取单元格所在的行DataGridViewRow row = dataGridView_machine.Rows[e.RowIndex];//获取流水号string ID = row.Cells[Table_lab_test_schedule.ID].Value.ToString();string sql = $"update {Table_lab_test_schedule.table_name} set {columnName}='{cell.Value}' where {Table_lab_test_schedule.ID}='{ID}'";// 获取行数据//string columnName1 = row.Cells["ColumnName1"].Value.ToString();// string columnName2 = row.Cells["ColumnName2"].Value.ToString();// ... 获取其他列的数据if (!DataBase.Deal_LabratoryManage(sql)){new WarningDialogForm("操作失败").ShowDialog();return;}//LoadTable();}

这篇关于WinForm小技巧之向下复制行和编辑行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1122532

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

购买磨轮平衡机时应该注意什么问题和技巧

在购买磨轮平衡机时,您应该注意以下几个关键点: 平衡精度 平衡精度是衡量平衡机性能的核心指标,直接影响到不平衡量的检测与校准的准确性,从而决定磨轮的振动和噪声水平。高精度的平衡机能显著减少振动和噪声,提高磨削加工的精度。 转速范围 宽广的转速范围意味着平衡机能够处理更多种类的磨轮,适应不同的工作条件和规格要求。 振动监测能力 振动监测能力是评估平衡机性能的重要因素。通过传感器实时监

滚雪球学Java(87):Java事务处理:JDBC的ACID属性与实战技巧!真有两下子!

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~ 🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!! 环境说明:Windows 10

禁止复制的网页怎么复制

禁止复制的网页怎么复制 文章目录 禁止复制的网页怎么复制前言准备工作操作步骤一、在浏览器菜单中找到“开发者工具”二、点击“检查元素(inspect element)”按钮三、在网页中选取需要的片段,锁定对应的元素四、复制被选中的元素五、粘贴到记事本,以`.html`为后缀命名六、打开`xxx.html`,优雅地复制 前言 在浏览网页的时候,有的网页内容无法复制。比如「360

PDF 软件如何帮助您编辑、转换和保护文件。

如何找到最好的 PDF 编辑器。 无论您是在为您的企业寻找更高效的 PDF 解决方案,还是尝试组织和编辑主文档,PDF 编辑器都可以在一个地方提供您需要的所有工具。市面上有很多 PDF 编辑器 — 在决定哪个最适合您时,请考虑这些因素。 1. 确定您的 PDF 文档软件需求。 不同的 PDF 文档软件程序可以具有不同的功能,因此在决定哪个是最适合您的 PDF 软件之前,请花点时间评估您的

小技巧绕过Sina Visitor System(新浪访客系统)

0x00 前言 一直以来,爬虫与反爬虫技术都时刻进行着博弈,而新浪微博作为一个数据大户更是在反爬虫上不遗余力。常规手段如验证码、封IP等等相信很多人都见识过…… 当然确实有需要的话可以通过新浪开放平台提供的API进行数据采集,但是普通开发者的权限比较低,限制也比较多。所以如果只是做一些简单的功能还是爬虫比较方便~ 应该是今年的早些时候,新浪引入了一个Sina Visitor Syst

PMP–一、二、三模–分类–14.敏捷–技巧–看板面板与燃尽图燃起图

文章目录 技巧一模14.敏捷--方法--看板(类似卡片)1、 [单选] 根据项目的特点,项目经理建议选择一种敏捷方法,该方法限制团队成员在任何给定时间执行的任务数。此方法还允许团队提高工作过程中问题和瓶颈的可见性。项目经理建议采用以下哪种方法? 易错14.敏捷--精益、敏捷、看板(类似卡片)--敏捷、精益和看板方法共同的重点在于交付价值、尊重人、减少浪费、透明化、适应变更以及持续改善等方面。

OpenStack:Glance共享与上传、Nova操作选项解释、Cinder操作技巧

目录 Glance member task Nova lock shelve rescue Cinder manage local-attach transfer backup-export 总结 原作者:int32bit,参考内容 从2013年开始折腾OpenStack也有好几年的时间了。在使用过程中,我发现有很多很有用的操作,但是却很少被提及。这里我暂不直接

PMP–一、二、三模–分类–14.敏捷–技巧–原型MVP

文章目录 技巧一模14.敏捷--原型法--项目生命周期--迭代型生命周期,通过连续的原型或概念验证来改进产品或成果。每个新的原型都能带来新的干系人新的反馈和团队见解。题目中明确提到需要反馈,因此原型法比较好用。23、 [单选] 一个敏捷团队的任务是开发一款机器人。项目经理希望确保在机器人被实际建造之前,团队能够收到关于需求的早期反馈并相应地调整设计。项目经理应该使用以下哪一项来实现这个目标?

jqgrid设置单元格可编辑

1 在单元格的属性列设置为editable。 2 点击编辑按钮的时候,触发某一行设置为edit的状态。 jQuery("#rowed4").jqGrid({url:'server.php?q=2',datatype: "json",colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'],colModel