1. using DataToDeal;
  2. using LumenWorks.Framework.IO.Csv;
  3. using Microsoft.Win32;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Data;
  7. using System.IO;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Windows;
  12. using System.Windows.Controls;
  13. using System.Windows.Data;
  14. using System.Windows.Documents;
  15. using System.Windows.Input;
  16. using System.Windows.Media;
  17. using System.Windows.Media.Imaging;
  18. using System.Windows.Navigation;
  19. using System.Windows.Shapes;
  20.  
  21. namespace CSVReaderFast
  22. {
  23. /// <summary>
  24. /// MainWindow.xaml 的交互逻辑
  25. /// </summary>
  26. public partial class MainWindow : Window
  27. {
  28. public MainWindow()
  29. {
  30. InitializeComponent();
  31. this.Loaded += MainWindow_Loaded;
  32. }
  33. DataTable dt = null;
  34.  
  35. //update VEYear set DescriptionChinese=replace(DescriptionChinese,'?','')
  36. public string str = "Data Source=.;Initial Catalog=RBVehicle;User ID=sa;Password=xwl;Max Pool Size = 512";
  37. void MainWindow_Loaded(object sender, RoutedEventArgs e)
  38. {
  39. //简单对应数据库表名,其实完全可以数据库获取
  40. string[] tableNamelist = { "RBAutoCalc", "RBRegAdjustments", "RBRegions", "RBStdEquip", "RBVehicle", "VEFamily", "VEMake", "VEYear" };
  41. foreach (var item in tableNamelist)
  42. {
  43. this.cbx1.Items.Add(item);
  44. }
  45. }
  46. //打开csv文件
  47. private void Button_Click_1(object sender, RoutedEventArgs e)
  48. {
  49. dt = new DataTable();
  50.  
  51. OpenFileDialog window = new OpenFileDialog();
  52. window.FileName = "文件";
  53. window.DefaultExt = "*.*";
  54. window.Filter = "CSV文件|*.CSV";
  55. Nullable<bool> result = window.ShowDialog();
  56. if (result == true)
  57. {
  58. string fileName = window.FileName;
  59. using (CsvReader csv =
  60. new CsvReader(new StreamReader(fileName), true))
  61. {
  62. //字段数量
  63. int fieldCount = csv.FieldCount;
  64. //标题数组
  65. string[] headers = csv.GetFieldHeaders();
  66. //创建列名称
  67. for (int i = ; i < headers.Count(); i++)
  68. {
  69. DataColumn dc = new DataColumn(headers[i]);
  70. dt.Columns.Add(dc);
  71. }
  72. //只进的游标读取
  73. while (csv.ReadNextRecord())
  74. {
  75. DataRow dr = dt.NewRow();
  76. for (int j = ; j < fieldCount; j++)
  77. {
  78. dr[j] = csv[j];
  79. }
  80. dt.Rows.Add(dr);
  81. }
  82. if (dt.Rows.Count > )
  83. {
  84. this.DataGrid1.ItemsSource = dt.DefaultView;
  85. this.labe1.Content = "共" + dt.Rows.Count + "条";
  86. }
  87. }
  88. }
  89. }
  90. private void Button_Click(object sender, RoutedEventArgs e)
  91. {
  92. if (this.cbx1.SelectedIndex != -)
  93. {
  94. if (dt != null && dt.Rows.Count > )
  95. {
  96. string TableName = this.cbx1.SelectedItem.ToString();
  97.  
  98. string returnvalue = new HelpFile().SqlBulkCopyData(TableName, dt, str);
  99. if (returnvalue.Contains('@'))
  100. {
  101. MessageBox.Show("导入异常:" + returnvalue.Split('@').Last());
  102. }
  103. MessageBox.Show("导入成功!");
  104. lable1.Content = returnvalue;
  105. }
  106. else
  107. {
  108. MessageBox.Show("没有数据可导入,请先加载数据!");
  109. }
  110.  
  111. }
  112. }
  113. }
  114. }

快速读取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. C socket demo

    一.服务端-server.c #include <stdio.h> #include <sys/socket.h> #include <arpa/inet.h> # ...

  2. preference activity框架

    从android3.0开始preference框架做了重大改变 框架由一下四部分组成 1.preference screen布局 一个xml文件,指定了要显示的Preference控件. 每个控件应当 ...

  3. java list&lt;string&gt;组 传递到值js排列

    方法一 后台:     String sql = "select * from tree";     list = this.treeService.getTreeList(sql ...

  4. SecureCRT恢复默认字体

    1\要想永久的改变的就跟我来吧,选项--全局选项--常规--默认会话--编辑默认设置--外观--当前颜色方案--选择自己喜欢的方案就行啦,然后选择保存就OK啦方案二: 自从装了Win7之后,觉得sec ...

  5. Android 自定义View修炼-仿QQ5.0 的侧滑菜单效果的实现

    有一段时间没有写博客了,最近比较忙,没什么时间写,刚好今天有点时间, 我就分享下,侧滑菜单的实现原理,一般android侧滑的实现原理和步骤如下:(源码下载在下面最后给出哈) 1.使用ViewGrou ...

  6. android zxing自定义界面,点击按钮开关闪光灯

    折腾了一天,今天基本把自定义扫描二维码界面实现了,主要碰到的问题是文本过长,要居中并换行,绘制图片,点击切换不同图片,打开或关闭闪关灯,结果发现在一些机型上出现空指针异常,又牵扯到硬件加速问题...参 ...

  7. 解决PL/SQL Developer中文乱码的问题

    set nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBK cd "c:\Program Files\PLSQL Developer" PLSQL ...

  8. 理解Objective-c中的copy

    说一下深拷贝和浅拷贝的基本概念:a指针指向地址A1, 浅拷贝是创建了一个b指针指向地址A1:深拷贝是创建了一个c指针指向地址A2,A1和A2的地址不同. 我们看到NSObject接口里面是已经声明了c ...

  9. Javascript,闭包

    js变量的调用 一.全局变量函数调用 var n = 99; function f1() { alert(n); } f1();//99 在函数外部定义的变量,再函数中可以被调用,因为变量n,与f1在 ...

  10. php 中json_decode()和json_encode()的使用方法

    1.json_decode() json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_decode — 对 JSON 格式的字符串进行 ...