public static bool ContrastColumns(DataColumnCollection co1, DataGridViewColumnCollection co2)
{
bool aa = false;
if (co1.Count == co2.Count)
{
for (int i = ; i < co1.Count; i++)
{
if (co1[i].Caption != co2[i].Name)
{
aa = false;
break;
}
else
{
aa = true;
}
}
return aa;
}
else
return false;
} public static string DataGridViewToDB(DataGridView DGV, string connstr, string Tablestr)
{
int aa = ;
string mycmd = "select * from " + Tablestr;
DataTable dt = SqlHelper.SQLCommand<DataTable>(mycmd, connstr); if (ContrastColumns(dt.Columns, DGV.Columns))
{
StringBuilder sb = new StringBuilder();
sb.Append("insert into " + Tablestr + "("); for (int i = ; i < DGV.ColumnCount; i++)
{
if (i == DGV.ColumnCount - )
{
sb.Append(DGV.Columns[i].Name + ") values (");
}
else
{
sb.Append(DGV.Columns[i].Name + ",");
}
} foreach (DataGridViewRow dgvRow in DGV.Rows)
{
StringBuilder mysb = new StringBuilder();
mysb.Append("select * from " + Tablestr + " where "); StringBuilder sb2 = new StringBuilder();
for (int i = ; i < dgvRow.Cells.Count; i++)
{
if (i == )
{
mysb.Append(DGV.Columns[i].Name + "='" + dgvRow.Cells[i].Value + "'");
}
else
{
mysb.Append(" and " + DGV.Columns[i].Name + "='" + dgvRow.Cells[i].Value + "'");
} if (i == dgvRow.Cells.Count - )
{
sb2.Append("'" + dgvRow.Cells[i].Value + "')");
}
else
{
sb2.Append("'" + dgvRow.Cells[i].Value + "',");
}
}
string sqlcmd = sb.ToString() + sb2.ToString(); try
{
DataTable mydt = SqlHelper.SQLCommand<DataTable>(mysb.ToString(), connstr);
if (mydt.Rows.Count == )
{
SqlHelper.SQLCommand<int>(sqlcmd, connstr);
aa++;
}
}
catch (Exception ee)
{
ee.ToString();
}
}
return "迁移成功:共" + aa.ToString() + "条记录";
}
else
return "迁移失败:表头不匹配";
}

C# DataGridView插入DB的更多相关文章

  1. jmeter读取执行case插入DB生成报表和备份记录

    前言:由于通过jmeter写的接口自动化木有数据导入和统计分析功能,因此做了2次开发,目的是读取每条case获取接口名称和用例名称,通过获取的case执行结果进行计算,得到详细接口的用例通过率存入DB ...

  2. jmeter执行case结果插入DB数据优化

    访问初始实现路径:jmeter执行case结果插入DB生成报表和备份记录 借前面实现导入DB数据先说明之前数据的缺点: 第一,若需要依赖接口的数据,会把依赖接口的case统计进去造成数据统计错误.第二 ...

  3. jmeter执行case结果插入DB生成报表和备份记录

    前言:由于通过jmeter写的接口自动化木有数据导入和统计分析功能,因此做了二次开发,目的是读取每条case获取接口名称和用例名称,通过获取的case执行结果进行计算,得到详细接口的用例通过率存入DB ...

  4. C#/.NET使用HttpWebRequest、SqlBulkCopy从API获取数据批量插入DB

    小弟新手程序员一枚,代码技术和文章水平均不才.所写文章均为对自己所写所学代码的简单记录,可能对于老手程序员营养价值不高,望莫见怪. 我工作上有个需求:从某处API接口上获取数据(大约1W条而已)并插入 ...

  5. linux下Java程序中插入DB中国的数据乱码问题

    首先,插入到DB数据,在Linux在查询时,现场展示??. 再次,在windows连接到db上,查看的结果并非乱码. 改动Eclipse软件中的编码:如上图:windows菜单->prefere ...

  6. DataGridView插入一行数据和用DataTable绑定数据2种方式

    以前不会用DataGridView的时候一直使用DataTable绑定的方式,如下: DataTable table = new DataTable(); //给表添加一列Name,此名字和 tabl ...

  7. 简单的批量读取外部insert文并插入DB

    package com.tongxiang.item.base.dao; import java.io.BufferedReader; import java.io.File; import java ...

  8. 如何处理高并发情况下的DB插入

    1.  我们需要接收一个外部的订单,而这个订单号是不允许重复的 2.  数据库对外部订单号没有做唯一性约束 3.  外部经常插入相同的订单,对于已经存在的订单则拒绝处理 对于这个需求,很简单我们会用下 ...

  9. Berkeley DB

    最近用BDB写点东西,写了挺多个测试工程.列下表,也理清楚最近的思路 1.测试BDB程序,包括打开增加记录,查询记录,获取所有记录.将数据转存mysql 程序的不足,增加记录仅仅只有key和value ...

随机推荐

  1. Java对象与JSON互相转换jsonlib以及手动创建JSON对象与数组——(二)

    首先声明一下,jsonlib转换与GSON相比太差劲了,操作不是一般的繁琐.GSON可以直接转换成各种集合与对象类型.强烈推荐使用GSON.而且GSON一个方法就可以解决,jsonlib转来转去太繁琐 ...

  2. SpringBoot整合Jdbc

    (1).添加相关依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId ...

  3. 【自己开发】Jquery的loading插件

    经过几周的时间的开发.我的loading插件终于上线了.这个插件功能为客户提供正在等待的信息,提供优良用户体验效果. 先看效果. 原理我内部实现我不讲,特别简单. 我说调用方式和api. 首先引用jq ...

  4. 【转】Python之数据序列化(json、pickle、shelve)

    [转]Python之数据序列化(json.pickle.shelve) 本节内容 前言 json模块 pickle模块 shelve模块 总结 一.前言 1. 现实需求 每种编程语言都有各自的数据类型 ...

  5. python的技巧和方法你了解多少?

    学了这些你的python代码将会改善与你的技巧将会提高. 1. 路径操作 比起os模块的path方法,python3标准库的pathlib模块的Path处理起路径更加的容易. 获取当前文件路径 前提导 ...

  6. maven名词解释

    Maven名词解释 Project:任何你想build的事物,Maven都可以认为它们是工程.这些工程被定义为工程对象模型(POM,Poject Object Model).一个工程可以依赖其它的工程 ...

  7. Vue.js——理解与创建使用

    Vue.js 概念:是一个轻巧.高性能.可组件化的MVVM库,同时拥有非常容易上手的API,作者是尤雨溪是中国人. 优点: 1)易用 已经会了HTML,CSS,JavaScript?即刻阅读指南开始构 ...

  8. 解决Myeclipse启动Spring Boot项目报出莫名异常

    有时候明明代码.配置都是正确的,但是一启动却报出莫名其妙的异常. 主要原因是resource包下的xml.yml文件或者其他配置文件路径不正确,解决方法如下: 第一步. 第二步.如果Excluded不 ...

  9. oracle中REGEXP_SUBSTR方法的使用

    近期在做商旅机票平台,遇到这样一个问题: 有一张tt_ticket表,用来存机票信息.里边有一个字段叫schedule,表示的是行程,存储格式为:北京/虹桥 由于公司位于上海.而上海眼下有两个机场:浦 ...

  10. Vue.js学习笔记之修饰符详解

    本篇将简单介绍常用的修饰符. 在上一篇中,介绍了 v-model 和 v-on 简单用法.除了常规用法,这些指令也支持特殊方式绑定方法,以修饰符的方式实现.通常都是在指令后面用小数点“.”连接修饰符名 ...