DataGridView数据更新至数据库-逐条更新
首先判断是否存在指定记录,存在则执行更新语句,不存在则执行插入语句。主要用到三个函数:
public class PubVariant{public static string strUpdateSql = "update CorrespondFields set CadField = @CadField,FieldType = @FieldType,CADTYPE = @CADTYPE"+ " where SdeLayerName = @SdeLayerName and CadLayerName = @CadLayerName and SdeField = @SdeField";public static string strInsertSql = "insert into CorrespondFields values(@SdeLayerName,@CadLayerName,@SdeField,@CadField,@FieldType,@CADTYPE)";}
/// <summary>/// 判断数据库是否有指定键值的记录/// </summary>/// <param name="str">键值</param>/// <returns>是否存在记录的布尔值</returns>public static bool ExistsRecord(string str){string strSql = "select * from CorrespondFields where SdeField = '" + str + "' and SdeLayerName = '" + PubVariant.sdeLayerName+ "' and CadLayerName = '" + PubVariant.cadLayerName + "'";using (SqlConnection connection = new SqlConnection(PubVariant.ConnectionString)){connection.Open();SqlCommand cmd = new SqlCommand();cmd.Connection = connection;cmd.CommandText = strSql;cmd.CommandType = CommandType.Text;SqlDataReader datareader = cmd.ExecuteReader();return datareader.HasRows;}}/// <summary>/// 执行带参数的Sql语句/// </summary>/// <param name="sqlParas">sql参数数组</param>/// <param name="strSql">要执行的sql语句</param>public static void ExecuteSql(SqlParameter[] sqlParas, string strSql){using (SqlConnection connection = new SqlConnection(PubVariant.ConnectionString)){connection.Open();using (SqlCommand cmd = new SqlCommand(strSql, connection)){foreach (SqlParameter sp in sqlParas){cmd.Parameters.Add(sp);}cmd.ExecuteNonQuery();}}}/// <summary>/// 用datagridview的数据更新数据库/// </summary>/// <param name="dgv">datagridview</param>/// <returns>更新是否成功</returns>public static bool UpdataFromDGVtoDB(DataGridView dgv){try{for (int i = 0; i < dgv.Rows.Count - 1; i++){string strCADTYPE;if (dgv.Rows[i].Cells[1].Value.ToString().StartsWith("[")){strCADTYPE = "1";}else{strCADTYPE = "2";}SqlParameter[] sqlParas = new SqlParameter[]{new SqlParameter("@SdeLayerName", PubVariant.sdeLayerName),new SqlParameter("@CadLayerName", PubVariant.cadLayerName),new SqlParameter("@SdeField", dgv.Rows[i].Cells[0].Value.ToString()),new SqlParameter("@CadField", dgv.Rows[i].Cells[1].Value.ToString()),new SqlParameter("@FieldType", dgv.Rows[i].Cells[2].Value.ToString()),new SqlParameter("@CADTYPE", strCADTYPE) };if (ExistsRecord(dgv.Rows[i].Cells[0].Value.ToString())){ExecuteSql(sqlParas, PubVariant.strUpdateSql);}else{ExecuteSql(sqlParas, PubVariant.strInsertSql);}}return true;}catch (Exception ex){MessageBox.Show(ex.Message, "系统提示");return false;}}
转载:http://blog.csdn.net/foreverling/article/details/36390709
DataGridView数据更新至数据库-逐条更新相关推荐
- 58一面:Redis数据更新,是先更新数据库还是先更新缓存?
作者 | ^Damon 来源 | blog.csdn.net/qq_41689567/article/details/103664475 项目部分: 1.项目背景还有项目流程 2.从抓包开始到最终显示 ...
- oracle将一个表数据更新时间,Oracle批量更新,将一个表的数据批量更新另一表
[问题]现在有两个千万级别的结构相同数据不同数据表T_SMS_PHONENO(目的表),T_SMS_PHONENO2(源表),根据源表数据更新目的表的数据. [分析]根据经验,更新方法一般有以下几种: ...
- Access数据库到Mysql数据库实时更新
项目目标: 首先是将Access数据库中的大量数据(已经存好的原有百万级数据)转存到mysql数据库中,然后,随着Access中数据的增加,要同步更新mysql数据库,更新周期自定. 思路:一开始的转 ...
- access mysql 同步更新数据_[access 数据库同步]Access数据库到Mysql数据库实时更新
项目目标: 首先是将Access数据库中的大量数据(已经存好的原有百万级数据)转存到mysql数据库中,然后,随着Access中数据的增加,要同步更新mysql数据库,更新周期自定. 思路:一开始的转 ...
- 数据库-ADONET-向数据库提交更新
向数据库提交更新 ADONET对于提交更新的功能和控制是前所未有的.但是,如何有效的行使这种控制和能力? 很多人在ADONET中使用CommandBuilder来生成更新逻辑,有时代码段会滴油警告&q ...
- VB:使用Visual Studio 2010中的VB语言工具箱DataGridView调用SQL数据库Database的表格文件
VB:使用Visual Studio 2010中的VB语言工具箱DataGridView调用SQL数据库Database的表格文件 目录 问题探究 图文教程 问题探究 使用Visual Studio ...
- JMeter对数据库的更新操作
关于JMeter如何连接MySQL数据库,前面文章已经详解的讲解过了.因为配置数据库连是比较固定的步骤,这里就不重复讲解了. 本篇文章主要详细说明,使用JDBC Request组件,如何对数据库进行更 ...
- Vue数据更新但页面没有更新的多种情况
Vue数据更新但页面没有更新的多种情况 1.Vue 无法检测实例被创建时不存在于 data 中的 变量 原因:由于 Vue 会在初始化实例时对 data中的数据执行 getter/setter 转化, ...
- 多套知识付费平台源码亲测在用+数据库+一键更新?功能
多套知识付费平台源码亲测在用+数据库+一键更新?功能 A致富 学堂V2_3.4.2全解密完整安装包+直播插件+小程序+PC端 源码目录 └── A致富 学堂V2_3.4.2全解密完整安装包+直播插件+ ...
最新文章
- dw6能编译asp吗,让Adobe Dreamweaver CC支持ASP
- 一个新手上课的路程!!!
- new和make的区别
- Redis实现分布式锁1
- PAT甲级1146 Topological Order :[C++题解]拓扑排序、结构体存边、图论
- 【PHP 】伪静态 - 4. 实际运用
- 像烟灰一样松散(毕淑敏)
- 图像处理工具包ImagXpress中如何设置上下文菜单
- SharePoint2013 备份还原
- 脚本语言(确认补遗)
- Spring4学习笔记-泛型依赖注入
- win7中竟然没有telnet.exe??
- Hibernate学习(八):检索方式
- Sublime Text3配置LaTeX环境及使用Sumatra PDF作为阅读器——亲测可用
- 《Java核心技术36讲》读后
- 如何在Linux上安装和使用TeamViewer
- Vision Assistant Minimum Scree Resolution
- 1024:为什么这些游戏这么火?
- 迪杰斯特拉算法和弗洛伊德算法
- python纳甲装卦
热门文章
- bzoj4788: [CERC2016]Bipartite Blanket
- Vue防止白屏添加首屏动画
- 单调队列 Monotonic Queue / 单调栈 Monotonic Stack
- Python Day28
- centos 忘记 root 密码
- 快速了解 MySQL 的性能优化
- 一个通过Flash设计与Flex结合开发的网站www.mapgle.cn
- ASP.NET与JavaScript联合操作之一 选择DataGrid中的CheckBox控件后该行背景变色
- hdu1010(小狗逃迷宫)
- Oracle学习操作(6)函数与存储过程