using DataToDeal;
using LumenWorks.Framework.IO.Csv;
using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes; namespace CSVReaderFast
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.Loaded += MainWindow_Loaded;
}
DataTable dt = null; //update VEYear set DescriptionChinese=replace(DescriptionChinese,'?','')
public string str = "Data Source=.;Initial Catalog=RBVehicle;User ID=sa;Password=xwl;Max Pool Size = 512";
void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
//简单对应数据库表名,其实完全可以数据库获取
string[] tableNamelist = { "RBAutoCalc", "RBRegAdjustments", "RBRegions", "RBStdEquip", "RBVehicle", "VEFamily", "VEMake", "VEYear" };
foreach (var item in tableNamelist)
{
this.cbx1.Items.Add(item);
}
}
//打开csv文件
private void Button_Click_1(object sender, RoutedEventArgs e)
{
dt = new DataTable(); OpenFileDialog window = new OpenFileDialog();
window.FileName = "文件";
window.DefaultExt = "*.*";
window.Filter = "CSV文件|*.CSV";
Nullable<bool> result = window.ShowDialog();
if (result == true)
{
string fileName = window.FileName;
using (CsvReader csv =
new CsvReader(new StreamReader(fileName), true))
{
//字段数量
int fieldCount = csv.FieldCount;
//标题数组
string[] headers = csv.GetFieldHeaders();
//创建列名称
for (int i = ; i < headers.Count(); i++)
{
DataColumn dc = new DataColumn(headers[i]);
dt.Columns.Add(dc);
}
//只进的游标读取
while (csv.ReadNextRecord())
{
DataRow dr = dt.NewRow();
for (int j = ; j < fieldCount; j++)
{
dr[j] = csv[j];
}
dt.Rows.Add(dr);
}
if (dt.Rows.Count > )
{
this.DataGrid1.ItemsSource = dt.DefaultView;
this.labe1.Content = "共" + dt.Rows.Count + "条";
}
}
}
}
private void Button_Click(object sender, RoutedEventArgs e)
{
if (this.cbx1.SelectedIndex != -)
{
if (dt != null && dt.Rows.Count > )
{
string TableName = this.cbx1.SelectedItem.ToString(); string returnvalue = new HelpFile().SqlBulkCopyData(TableName, dt, str);
if (returnvalue.Contains('@'))
{
MessageBox.Show("导入异常:" + returnvalue.Split('@').Last());
}
MessageBox.Show("导入成功!");
lable1.Content = returnvalue;
}
else
{
MessageBox.Show("没有数据可导入,请先加载数据!");
} }
}
}
}

快速读取csv平面文件,并导入数据库,简单小工具的更多相关文章

  1. PHP读取CSV大文件导入数据库的示例

    对于数百万条数据量的CSV文件,文件大小可能达到数百M,如果简单读取的话很可能出现超时或者卡死的现象. 为了成功将CSV文件里的数据导入数据库,分批处理是非常必要的. 下面这个函数是读取CSV文件中指 ...

  2. 读取Execl表数据 导入数据库

    不知不觉博客园园林都两年多了,我是今年毕业的应届生,最近公司项目需要改动,很多的数据需要导入,很多的实体类需要些.考虑到这些问题自己写了两个winform版的小工具,一个是读取Execl数据导入数据库 ...

  3. 【Python】Python实现Excel用例直接导入testlink-UI界面小工具

    1.写在前面 testlink上传用例一种方法是excel转换为xml,然后再用xml上传,还有一种是调用api进行上传.最开始写了个转换工具,是将excel转换为xml,然后在testlink里上传 ...

  4. JAVA读取CSV文件到MySQL数据库中

    maven项目pom配置: <dependency> <groupId>net.sourceforge.javacsv</groupId> <artifact ...

  5. php读取excel文件并导入数据库(表头任意设定)

    最近收到一个很奇葩的需求,要求上传excel员工工资表,表格表头不固定,导入后字段名为表头的拼音,每月导入一次,当月重复导入则覆盖现有的当月表头,并且可以按照在界面上按照月份筛选显示,我写的代码主要包 ...

  6. 用脚本将excel,csv等文件导入数据库

    文章转自 http://blog.csdn.net/lky5387/article/details/6043009 1.--导excel文件 select  订单编码 from OpenRowSet( ...

  7. 小数据量csv文件数据导入数据库(思路)

    大致写写思路,因为sqlserver提供了可以直接导入的图形界面. 1.private static string GetConnectionString(string folderPath)  // ...

  8. java后端服务器读取excel将数据导入数据库

    使用的是easypoi,官网文档:http://easypoi.mydoc.io/ /** * 导入Excel文件 */ @PostMapping("/importTeacher" ...

  9. monitor weblogic server ,Very simple to use, weblogic监控、巡检、故障简单小工具

        1. 开发了一个简单的监视weblogic执行情况的小程序.各位朋友下载下来试试,不用登陆console就能够知道server的执行状况,包含了jvm.线程.jdbc.状态jms等:另一个更简 ...

随机推荐

  1. linux jmail乱码

    在Windows 里面,标题和内容都正常, 在linux里面,--- 1.字符串 more /etc/sysconfig/i18n   export LANG=en_US.UTF-8 ====默认是e ...

  2. javaweb之Filter详解(转)

    .概念: Filter也称之为过滤器,它是Servlet技术中比较激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源: 例如Jsp, Servlet, 静态图片文件 ...

  3. 关于Servlet中重定向

    public class Red1Servlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpSer ...

  4. ASP.NET Mvc开发之EF延迟加载

    EF延迟加载:就是使用Lamabda表达式或者Linq 从 EF实体对象中查询数据时,EF并不是直接将数据查询出来,而是在用到具体数据的时候才会加载到内存. 一,实体对象的Where方法返回一个什么对 ...

  5. 图解I/O的五种模型

    1.1 五种I/O模型 1)阻塞I/O 2)非阻塞I/O 3)I/O复用 4)事件(信号)驱动I/O 5)异步I/O 1.2 为什么要发起系统调用? 因为进程想要获取磁盘中的数据,而能和磁盘打交道的只 ...

  6. 无法启动调试--未安装 Silverlight Developer 运行时。请安装一个匹配版本。

    引自:http://www.cnblogs.com/chillsrc/archive/2010/06/28/1766816.html 安装完VS2010中文版之后,又安装了Silverlight4_T ...

  7. css-01

    1.CSS:级联样式表,设置页面的样式 2.css基本的语法:     属性:值; 3.CSS的引入   |-1.元素内容的引入:内联样式       <元素名 style="属性:值 ...

  8. 点击按钮弹出一个div层

    JQuery弹出层,点击按钮后弹出遮罩层,还有关闭按钮 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml& ...

  9. 20160314 Request 和Response

    一.Response 1.Resonse的继承结构: ServletResponse--HttpServletResponse 2.Response代表响应,于是响应消息中的 状态码.响应头.实体内容 ...

  10. 学习笔记_Java_day13_三层的HelloWorld程序(15)--不错,整体三层架构学习

    分三层写:养成一个架构的习惯,如何编写一个大型网站 DAO数据层 service业务层 servlet web表述层