C#_datatable 写入大量数据_BulkCopy
using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
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.Shapes; namespace DataBaseTest
{
/// <summary>
/// InportExportDataTest.xaml 的交互逻辑
/// </summary>
public partial class InportExportDataTest : Window
{
public InportExportDataTest()
{
InitializeComponent();
} private void txtImport_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "文本文件|*.txt";
if (ofd.ShowDialog() != true)
{
return;
}
string filename = ofd.FileName;
//小文件可以用ReadLines,大文件用FileStream
IEnumerable<string> lines = File.ReadLines(filename,Encoding.Default); foreach (string line in lines)
{
string[] segs = line.Split('|');
string name = segs[0];
int age = Convert.ToInt32(segs[1]);
SqlHelper.ExecuteNonQuery("insert into T_DataImport values (@name,@age)",
new SqlParameter("@name",name),new SqlParameter("@age",age)); }
MessageBox.Show("成功导入"+lines.Count()+"条"); } private void btnBulk_Click(object sender, RoutedEventArgs e)
{
string connStr = ConfigurationManager.ConnectionStrings["dbConnStr"].ConnectionString;
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "文本文件|*.txt";
if (ofd.ShowDialog() != true)
{
return;
}
string filename = ofd.FileName;
//小文件可以用ReadLines,大文件用FileStream
string[] lines = File.ReadLines(filename, Encoding.Default).ToArray(); DateTime startTime = DateTime.Now; DataTable table = new DataTable();
table.Columns.Add("StartTelNum");
table.Columns.Add("City");
table.Columns.Add("TelType");
for(int i=0;i<lines.Length;i++)
{
string line = lines[i];
string[] strs = line.Split('\t'); //TAB键
string startTelNum = strs[0];
string city = strs[1];
city = city.Trim('"');//去掉双引号
string telType = strs[2];
telType = telType.Trim('"'); DataRow row = table.NewRow();//DataRow定义有Internal,所以要new一个row对象
row["StartTelNum"] = startTelNum;
row["City"] = city;
row["TelType"] = telType;
table.Rows.Add(row);//NewRow只是创建,还没有插入,只是本地的table
} using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connStr))
{
bulkCopy.DestinationTableName="T_Student"; //目标table
bulkCopy.ColumnMappings.Add("StartTelNum", "StartTelNum");//本地table与数据库中table column的mapping
bulkCopy.ColumnMappings.Add("City", "TelArea");
bulkCopy.ColumnMappings.Add("TelType", "TelType");
bulkCopy.WriteToServer(table);
}
TimeSpan ts = DateTime.Now - startTime;
}
}
}
C#_datatable 写入大量数据_BulkCopy的更多相关文章
- Python中,添加写入数据到已经存在的Excel的xls文件,即打开excel文件,写入新数据
背景 Python中,想要打开已经存在的excel的xls文件,然后在最后新的一行的数据. 折腾过程 1.找到了参考资料: writing to existing workbook using xlw ...
- 利用JavaScript数组动态写入HTML数据节点
如果想要使用数组来写入HTML数据,绝对需要的是一个Key值,由Key来引导遍历数组各项:此外,使用DOM原生方法写入文档,用同一个CSS样式渲染它们,这样可以极大地减少开发时间和减少维护成本,此方法 ...
- Python 使用 xlwings 往 excel 中写入一行数据的两种方法
该方法跟上一篇写入一列的方法相反,代码如下: # -*- coding:utf-8 -*- import xlwings as xw list1 = [1,2,3,4,5] list2 = [[1], ...
- 按键精灵如何调用Excel及按键精灵写入Excel数据的方法教程---入门自动操作表格
首先来建立一个新的Excel文档,在桌面上点击右键,选择[新建]-[Excel工作表],命名为[新手学员]. 现在这个新Excel文档是空白的,我们接下来会通过按键精灵的脚本来打开并写入一些数据.打开 ...
- java poi 写入大量数据到excel中
最近在利用poi往excel中写入大量数据时,发现excel2003最多只支持65535条,大量数据时容易造成oom,上网查了一下api,发现目前对于2003,每个sheet最多支持65535条,若数 ...
- MATLAB读取写入文本数据最佳方法 | Best Method for Loading & Saving Text Data Using MATLAB
MATLAB读取文件有很多方法.然而笔者在过去进行数据处理中,由于函数太多,相互混杂,与C#,Python等语言相比,反而认为读取文本数据比较麻烦.C#和Python等高级语言中,对于大部分的文本数据 ...
- Java向指定Excel写入读取数据
今天在开发中遇到用户列表导入导出的功能实现,这里了解到使用POI函数库可以完成此任务!特此记录一下 POI Apache POI是Apache软件基金会开放的源码函数库,POI提供API给Java程序 ...
- 【java】ObjectOutputStream & ObjectInputStream 多次写入发生重复写入相同数据的问题
今日份代码,解决 ObjectOutputStream 多次写入发生重复写入相同数据的问题 核心区别如下: package com.sxd.swapping.objoutputstream; impo ...
- .NET 5/.NET Core使用EF Core 5连接MySQL数据库写入/读取数据示例教程
本文首发于<.NET 5/.NET Core使用EF Core 5(Entity Framework Core)连接MySQL数据库写入/读取数据示例教程> 前言 在.NET Core/. ...
随机推荐
- 【原创】深度神经网络(Deep Neural Network, DNN)
线性模型通过特征间的现行组合来表达“结果-特征集合”之间的对应关系.由于线性模型的表达能力有限,在实践中,只能通过增加“特征计算”的复杂度来优化模型.比如,在广告CTR预估应用中,除了“标题长度.描述 ...
- 【转】Git详解之一:Git起步
原文网址:http://blog.jobbole.com/25775/ 原文:<Pro Git> 起步 本章介绍开始使用 Git 前的相关知识.我们会先了解一些版本控制工具的历史背景,然后 ...
- Erlang入门(一)
读erlang.org上面的Erlang Course四天教程1.数字类型,需要注意两点1)B#Val表示以B进制存储的数字Val,比如 7> 2#101.5 二进制存储的101就是10进制的5 ...
- (二)学习CSS之cursor属性
参考:http://www.w3school.com.cn/tiy/t.asp?f=csse_zindex cursor 属性规定要显示的光标的类型(形状). <html> <bod ...
- 【js与jquery】电子邮箱、手机号、邮政编码的正则验证
//验证邮政编码 $("#postcode").blur(function(){ //获取邮政编码 var postcode=$("#postcode").va ...
- Iterator和ListIterator区别
我们在使用List,Set的时候,为了实现对其数据的遍历,我们经常使用到了Iterator(迭代器).使用迭代器,你不需要干涉其遍历的过程,只需要每次取出一个你想要的数据进行处理就可以了. 但是在使用 ...
- 为什么浏览器User-agent总是有Mozilla字样(User-agent String里的历史故事)【搜藏】
你是否好奇标识浏览器身份的User-Agent,为什么每个浏览器都有Mozilla字样? Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 ...
- Channel 详解
java.nio.channels.FileChannel封装了一个文件通道和一个FileChannel对象,这个FileChannel对象提供了读写文件的连接. 1.接口 2.通道操作 a.所有通道 ...
- Magento输入正确的登陆名和密码无法进入后台
请找到 这个文件夹: app\code\core\Mage\Core\Model\Session\Abstract 然后修改Varien.php这个文件: 找到代码(大约88行): $cookiePa ...
- HW7.6
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...