使用到的对象:
1、  DataGridView: dataGridView1
2、  BindingNavigator: bindingNavigator1(自带添加按钮btnAdd、删除按钮btnDelete)
3、  ToolStripButton: btnCancelEdit(添加到bindingNavigator1之中)
使用到的事件:
/// <summary>/// 单元格的值改编后,执行更新、或插入操作;/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e){//如果关键字段"type",说明是在编辑新行的其它字段的值,不需要做如何操作;string typeTemp = dataGridView1.Rows[e.RowIndex].Cells["type"].FormattedValue.ToString();if (typeTemp == null || typeTemp.Trim().Length == 0) return;//string sqlStr = "select count(*) from Coupler where type='"+dataGridView1[0, e.RowIndex].FormattedValue.ToString() + "' ";if (ClsDataBaseOperator.execteCount(sqlStr) < 1){sqlStr = "insert into Coupler(type) values('" +dataGridView1[0, e.RowIndex].FormattedValue.ToString() + "')";ClsDataBaseOperator.executeGetLines(sqlStr);}else{sqlStr = "update Coupler set type='" + dataGridView1[0, e.RowIndex].FormattedValue.ToString() +"', PHS1900=" + dataGridView1.Rows[e.RowIndex].Cells["PHS1900"].FormattedValue.ToString() +", DCS1800=" + dataGridView1.Rows[e.RowIndex].Cells["DCS1800"].FormattedValue.ToString() +", GSM900=" + dataGridView1.Rows[e.RowIndex].Cells["GSM900"].FormattedValue.ToString() +", CDMA800=" + dataGridView1.Rows[e.RowIndex].Cells["CDMA800"].FormattedValue.ToString() +", other=" + dataGridView1.Rows[e.RowIndex].Cells["other"].FormattedValue.ToString() +", IsDefault=" + dataGridView1.Rows[e.RowIndex].Cells["IsDefault"].FormattedValue.ToString() + " where type='" + dataGridView1[0, e.RowIndex].FormattedValue.ToString() + "'";ClsDataBaseOperator.executeGetLines(sqlStr);}}/// <summary>/// 当有单元格进入编辑状态时,需要打开“撤销编辑”按钮的可点击状态;/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e){this.btnCancelEdit.Enabled = true;}/// <summary>/// 删除一条记录,删除表格的的当前行,并更新数据库;/// btnDelete为navigator自带的按钮,需要添加下面事件;/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void btnDelete_Click(object sender, EventArgs e){dataGridView1.Rows.Remove(dataGridView1.CurrentRow);string sqlStr = "delete from Coupler where type='" +dataGridView1.CurrentRow.Cells["type"].FormattedValue.ToString() + "' ";}/// <summary>/// 撤销修改/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void btnEdit_Click(object sender, EventArgs e){dataGridView1.CancelEdit();dataGridView1.EndEdit();}/// <summary>/// 添加新的一行;/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void btnAdd_Click(object sender, EventArgs e){dataGridView1.CurrentRow.Cells["PHS1900"].Value = "0";dataGridView1.CurrentRow.Cells["DCS1800"].Value = "0";dataGridView1.CurrentRow.Cells["GSM900"].Value = "0";dataGridView1.CurrentRow.Cells["CDMA800"].Value = "0";dataGridView1.CurrentRow.Cells["other"].Value = "0";dataGridView1.CurrentRow.Cells["type"].Selected = true;dataGridView1.CurrentCell = dataGridView1.CurrentRow.Cells["type"];}

datagridview自动保存修改数据相关推荐

  1. ABP天坑--UOW自动保存修改

    ABP项目也做了挺久了,实际上也没碰上太多的问题,但这两天被ABP的自动保存修改(Automatically Saving Changes)这个天坑给恶心坏了 因为项目设计上的问题,原先为了方便加上环 ...

  2. SecureCRT自动保存窗口数据到文件,自动保存日志,每行添加时间戳

    首先选中要保存的窗口,比如要保存Serial-COM5(1)的内容 右键"会话选项" 保存文件属性设置根据自己需要修改,主要就是设置好日志文件路径和文件名.修改完成点击确定. %S ...

  3. c# DataTable关联dataGridView创建与修改数据

    c# DataTable关联dataGridView1创建修改数据 gridControl1.DataSource = dataTable; //关联DataSource,数据改变自动更新到表格(数据 ...

  4. 保存修改前后的数据历史记录

    我公司最近要我开发销售退货/款单,其中就有编辑退货款时需要保存修改数据的历史记录.我也是一个新入职场的小白,研究了一上午终于解决了,若有不对的地方麻烦私聊找我.要求如图所示: 下面是我解决问题的代码: ...

  5. 草稿 修改数据 datagroupview

    自动列的大小 更新的方法 保存 修改数据

  6. 修改数据 (通过页面修改数据库数据)

    1.搭建自己的页面,根据自己实际需求自行搭建改动,在此不要求统一( *页面上内容已通过单表查询与数据库数据连接 *不会单表查询的可看我前面发表的文章这里就不重复 *注意布局时要加入模态框(如图二)) ...

  7. E3【数据可视化】【组件】基于Python+Flask+Echarts+HTML5拖放(DragDrop)实现的可拖放布局并自动保存布局的动态饼图

    目录 一. 效果展示 二. 实现思路 所需知识点 三. 系统架构 四. 关键代码 1. 页面div布局 2. 布局拖放 drag drop 处理 3. 布局保存 4. Python Flask web ...

  8. 基于CSerialPort修改类的串口调试助手源代码(支持中文、自动保存等)

    转自:  http://blog.csdn.net/itas109/article/details/51337538 [最新修正版2016-05-07] http://blog.csdn.net/it ...

  9. php 保存表单数据,使用jquery和php自动保存表单数据

    我对PHP非常好,但是使用jQuery的总菜单,并且卡在自动保存表单数据中. 自动保存功能在dummy.php中每30秒调用一次.我正在将用于处理的序列化表单数据( – >数据库)发送到save ...

最新文章

  1. guava中的Joiner
  2. est.java 2 错误 找不到符号_在命令行上用junit-4.12.jar和hamcrest-core-1.3.jar编译并运行测试?错误:是抽象的,无法实例化,找不到符号...
  3. centos7中置空一个文件的内容
  4. Boost:parallel grep测试程序
  5. 小邪在阿里的十年技术人生
  6. 全局变量及其含义php,php Server:php超全局变量Server的含义与用法示例
  7. Web后端学习笔记Flask(2)模板
  8. hp1008win7驱动问题
  9. DES 加密解密的通俗易懂
  10. 有家谱和没家谱,后人的差距真的很大!家谱用怎么样的形式完成传承
  11. Web mfw Writeup
  12. EndNote X9在Word插入参考文献时在工具来不显示,使用时显示服务器运行失败,和用国标GBT 7714遇到的错误
  13. 程序集版本号,文件版本号及发布版本号管理
  14. Java集合移除某个元素
  15. HZNUOJ 2058 凯撒密码
  16. 按揭贷款买房流程及注意事项详解 你准备好买房了吗
  17. App流量变现并不一定损害用户体验,这些方法你得了解
  18. java 月最后一个周日_java 获取上月、一个月最后一天、周一、周日、本月日期 【转】...
  19. 手机版PDF编辑器支持PDF转Word、文档内容编辑合并与提取
  20. 【系统管理】清理任务栏的已删除程序的图标缓存

热门文章

  1. 软考信息系统项目管理师_项目进度管理2---软考高级之信息系统项目管理师014
  2. C++_类和对象_C++多态_案例2_制作饮品---C++语言工作笔记073
  3. Vue打包发布项目---vue工作笔记0020
  4. 基于Spring Security的认证授权_认证原理_授权流程_Spring Security OAuth2.0认证授权---springcloud工作笔记126
  5. 网站制作---科讯万能搜索系统的简单实用教程
  6. 疫苗:Java HashMap的死循环(转)
  7. ubuntu+intellij IDEA+android环境配置
  8. win32开发(窗口类和窗口)
  9. html微软雅黑字体模糊,WinXP中微软雅黑字体模糊看得很吃力怎么解决
  10. Markdown编辑器的使用技巧