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. k64 datasheet学习笔记1---概述

    1.前言 k64 datasheet描述了Freescale MCU的特性.架构和编程模型,主要是面向使用MCU的系统架构和软件应用开发人员. 2.模块划分 datasheet主要按功能对模块进行划分 ...

  2. UML和模式应用1: 面向对象的分析与设计

    1.基本术语说明 items note OOA/D  面向对象的分析与设计 UML 描述.构造和文档化系统制品的可视化语言 模式 问题解决方案的公式 2. 本书的主要内容 本书的主旨是对应用了UML和 ...

  3. WPF通过DynamicResource的用法

    1.先在资源类库中编写:style.xaml,如下: <ResourceDictionary   xmlns="http://schemas.microsoft.com/winfx/2 ...

  4. 如何在DOS窗口复制和粘贴命令

    在键盘上按下windows+R键,打开运行窗口. 在“打开”处输入cmd,并按下enter键,打开DOS窗口. 把鼠标移动到DOS窗口标题处,单击鼠标右键,选择属性. 把编辑选项处的“快速编辑模式”勾 ...

  5. Protocol Buffers简明教程

    随着微服务架构的流行,RPC框架渐渐地成为服务框架的一个重要部分. 在很多RPC的设计中,都采用了高性能的编解码技术,Protocol Buffers就属于其中的佼佼者. Protocol Buffe ...

  6. winform(记事本--保存和退出)

  7. js闭包实例汇总

    本文是通过实例来帮助大家深刻理解js闭包,是篇非常不错的文章,这里推荐给大家,有需要的小伙伴可以参考下 Js闭包 闭包前要了解的知识 1. 函数作用域 (1).Js语言特殊之处在于函数内部可以直接读取 ...

  8. Redis五大数据类型以及操作

    目录: 一.redis的两种链接方式 二.redis的字符串操作(string) 三.redis的列表操作(list) 四.redis的散列表操作(类似于字典里面嵌套字典) 五.redis的集合操作( ...

  9. 自己理解Java中的lambda

    lambda是什么 "Lambda 表达式"(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lam ...

  10. java.lang.Math

    四舍五人 System.out.println(Math.round(1.8f));//输出位2 static(静态)方法random() //: object/Shifting.java packa ...