DataGridView数据更新至数据库-逐条更新
2023-09-14 08:59:41 时间
首先判断是否存在指定记录,存在则执行更新语句,不存在则执行插入语句。主要用到三个函数:
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) 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
到底是先更新数据库还是先更新缓存? 很多小伙伴最近都在问我,在系统中引入缓存后,当向数据库中写入数据时,是先写数据库还是先写缓存呢?先写数据库和先写缓存有什么区别吗?今天,我们就一起来聊聊这个话题。
最近,有个比较大的项目出现数据库死锁。经过分析数据库trace文件,发现死锁的是基础数据表疾病诊断。
Mysql数据库实践操作之————批量插入数据(100万级别的数据) 第一种方法:使用insert into 插入 从Redis每次获取100条数据,根据条件去插入到Mysql数据库中: 如果当前队列中的值大于1000条,则会自动的条用该方法,该方法每次获取从队列的头部每次获取100掉数据插入到Mysql数据库中,同时以当前队列的长度为插入条件。
相关文章
- HTAP会成为数据库的未来吗?
- 数据库中间件mycat简单入门
- EF框架中,在实体中手动更新字段,数据库数据未同步到程序中应该怎么解决呢?
- ASP.NET MVC 数据传递进阶 从数据库拿到数据后的三种方式
- docker中mysql数据库的数据导入和导出
- 06-编写Hibernate API编写访问数据库的代码,使用Junit进行测试
- 两台Mysql数据库数据同步实现
- ajax结合mysql数据库和smarty实现局部数据状态的刷新
- 导出数据库的结构不含数据
- 如何优化数据库对象
- DataGridView数据更新至数据库-逐条更新
- Mysql数据库的使用总结之Innodb简介(一)
- Oracle 数据库(表)的逻辑备份与恢复
- Sql Server数据库数据导入到SQLite数据库中
- 数据库中varchar和Nvarchar区别与联系
- Atitit 基于文件的数据库保存系统json文档数据库 目录 1.1. 一行数据一个文件,一个文件夹微数据表表1 1.2. 保存C:wampwwwtisyetisye.php1 1.3
- 基于MongoDB构建阿里云MongoDB云数据库服务
- MySQL同步数据到本地自建数据库
- 〖Python 数据库开发实战 - Redis篇⑩〗- Redis数据结构 - 有序集合类型
- NDPQ(NDP+PQ),定义分布式数据库新方向
- 数据库运维家中常备:上限约400MB/s,比COPY等工具还好用的数据利器
- Java编程:MyBatis读取数据库数据
- vue中使用分页组件、将从数据库中查询出来的数据分页展示(前后端分离SpringBoot+Vue)
- java更改数据库中的数据
- Eclipse中java向数据库中添加数据,更新数据,删除数据
- 干货~多线程下1分钟完成1000万条数据插入到数据库中
- 【计算机三级数据库技术】第6章 高级数据查询--附思维导图
- 数据库原理及安全(三)
- 【TigerGraph】图数据库实战入门 —— 数据导入