zoukankan      html  css  js  c++  java
  • 快速读取csv平面文件,并导入数据库,简单小工具

    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 = 0; i < headers.Count(); i++)
                        {
                            DataColumn dc = new DataColumn(headers[i]);
                            dt.Columns.Add(dc);
                        }
                        //只进的游标读取
                        while (csv.ReadNextRecord())
                        {
                            DataRow dr = dt.NewRow();
                            for (int j = 0; j < fieldCount; j++)
                            {
                                dr[j] = csv[j];
                            }
                            dt.Rows.Add(dr);
                        }
                        if (dt.Rows.Count > 0)
                        {
                            this.DataGrid1.ItemsSource = dt.DefaultView;
                            this.labe1.Content = "" + dt.Rows.Count + "";
                        }
                    }
                }
            }
            private void Button_Click(object sender, RoutedEventArgs e)
            {
                if (this.cbx1.SelectedIndex != -1)
                {
                    if (dt != null && dt.Rows.Count > 0)
                    {
                        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("没有数据可导入,请先加载数据!");
                    }
    
    
                }
            }
        }
    }
  • 相关阅读:
    2017年6月笔记
    2017年5月笔记
    2017年4月笔记
    转发:i p _ f o r w a r d函数
    IP分组
    IP协议首部结构介绍
    IP:网际协议
    sed工具使用
    正则表达式匹配
    TCP的半连接
  • 原文地址:https://www.cnblogs.com/BABLOVE/p/4466232.html
Copyright © 2011-2022 走看看