zoukankan      html  css  js  c++  java
  • WPF 数据批量插入

    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Data.SqlClient;
    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;
    using Microsoft.Win32;
    
    
    namespace SqlBulkCopy批量数据插入
    {
        /// <summary>
        /// MainWindow.xaml 的交互逻辑
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
            }
    
            private void Button_Click(object sender, RoutedEventArgs e)
            {
                string conStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
    
                OpenFileDialog ofd = new OpenFileDialog();
                ofd.Filter = "文本文件|*.txt";
                if (ofd.ShowDialog() == false)
                {
                    return;
                }
                string[] lines = 
                    File.ReadAllLines(ofd.FileName, Encoding.Default).ToArray();
                DateTime startTime = DateTime.Now;//这就是任务开始执行的时间
    
               // 这个方法可以快速插入,代替下面一块的的
    
                SqlBulkCopy bulkconpy = new SqlBulkCopy(connStr); //SqlBulkCopy数据大块的复制拷贝 connStrt通过这个链接来访问数据库
               
                
                
    //            //totalCount = lines.Length;
    
    //            //数据库连接池:ADO.NET会尽可能的复用连接池中的连接。
    //            //这作用是关闭数据库,并不是真的关闭的是微软帮你隐藏了,很长时间不用就把你释放了
    //            using (SqlConnection conn = new SqlConnection(connStr))
    //            {
    //                conn.Open();
    //                //注意文件T里是按照制表符分割的,不是字符串
    //                //foreach (string lien in lines)
    //                for (int i = 0; i < lines.Length;i++ )
    //                {
    //                    string line = lines[i];
    
    //                    string[] strs = lines.Split('\t');//vs里'\t'为制表符
    //                    string startTelNum = strs[0];
    //                    string city = strs[1];
    //                    city = city.Trim('"');//去掉两边的双引号:"北京市"
    //                    string telType = strs[2];
    //                    telType = telType.Trim('"');
    
    //                    //数据库连接池
    //                    using (SqlCommand cmd = conn.GreateCommand())
    //                    {
    //                        //遍历
    //                        //就这句办事效率低了些 ,有一种可以快速插入,叫批量提交
    //                        cmd.CommandText = @"insert into T_TelNum (StartTelNum,TelType,TelArea) 
    //                                   values(@StartTelNum,@TelType,@TelArea)";//@是可以控制多行的
    //                        cmd.Parameters.Add(new SqlParameter("@StartTelNum", startTelNum));
    //                        cmd.Parameters.Add(new SqlParameter("@TelType", telType));
    //                        cmd.Parameters.Add(new SqlParameter("@TelArea", city));
    //                        //插入
    //                        cmd.ExecuteNonQuery();
    
    //                    }
    //                    TimeSpan ts = DateTime.Now - startTime;//两个时间相减 TimeSpan类型时间段的意思,
    //                    //ts.TotalSeconds//时间段代码的总秒数  TimeSpan的属性
    //                    double ellapsedSec = ts.TotalSeconds;//ellapsedSec已经耗用的秒数
    
    
    //                    //扬中科那个数据库里一共十几万条数据 ,测出来的时间是24分钟所以怎么办;
    //                    //一般在计算机里现乘以后除更精确些
    //                    //double totalSec = (ellapsedSec / (i + 1)) * lines.Length;//(ellapsedSec/(i+1))每条大约用了多少秒,* lines.Length乘以总条数
    //                    //所以
    //                    double totalSec = ellapsedSec * lines.Length / (i + 1);//估计需要的总秒数
    //                }
    //            }
    
    
            }
    
            public string connStr { get; set; }
        }
    }
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <connectionStrings>
        <add name ="connStr" connectionString="Data Source=PC-20121201BQFG\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True"/>
      </connectionStrings>
      
        <!--<startup> 
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
        </startup>-->
    </configuration>
  • 相关阅读:
    hdu 2019 数列有序!
    hdu 2023 求平均成绩
    HDU 5805 NanoApe Loves Sequence (思维题) BestCoder Round #86 1002
    51nod 1264 线段相交
    Gym 100801A Alex Origami Squares (求正方形边长)
    HDU 5512 Pagodas (gcd)
    HDU 5510 Bazinga (字符串匹配)
    UVALive 7269 Snake Carpet (构造)
    UVALive 7270 Osu! Master (阅读理解题)
    UVALive 7267 Mysterious Antiques in Sackler Museum (判断长方形)
  • 原文地址:https://www.cnblogs.com/ruishuang208/p/3100318.html
Copyright © 2011-2022 走看看