C#中使用DTS来导入数据及相关问题

向Sql 中导入Excel数据时,使用MS SQL的DTS功能
可以很方便的导入,同时引用Dll文件,可以在程序中对导入过程进行控制。

创建DTS包的过程如下:
1。在SQL企业管理器中,工具菜单选数据转换服务,导入数据
按照它的图形化向导提示,可以一步步创建一个DTS包,可以选择保存在数据库。
2。在SQL企业管理器中,左边树形结构中选择 数据转化服务,本地包中
可以新建一个包,同样有图形化的界面建立包:拖一个Excel数据源,拖一个Sql数据源
然后在任务里选 数据转化任务,原数据选Excel源,目的选SQL,然后在转化的肩头上选属性
里面可以配置转化过程。注意带有主键的数据表,要把选项中 启用标示插入去掉


在C#里调用过程如下:
private void RunDTS()
2  {
3   DTS.Package2Class package = new Package2Class();
4   object p = null;
5   package.LoadFromSQLServer("ws-victor-03", null, null, DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_UseTrustedConnection,
6    null, null, null, "TestDTS", ref p);
7   package.Connections.Item(1).DataSource = "dts.XLS";
8   package.Execute();
9  }

现在项目中遇到问题:
1。插入数据时需要插入时间等Excel数据源中不存在的数据
2。Excel数据源中数据有的需要转化,像数值形,导入后变成了1。23131E12等形式
3。插入数据时需要从Sql中查询数据再插入

现在解决了第一条和第三条的一步分:
在上述配置 数据转化任务 时,


DTSDestination("ICC") = DTSSource("SIM Number");
    DTSDestination("IMSI") = DTSSource("IMSI");
    DTSDestination("PIN1") = DTSSource("PIN1");
    DTSDestination("PUK1") = DTSSource("PUK1");
    DTSDestination("PIN2") = DTSSource("PIN2");
    DTSDestination("PUK2") = DTSSource("PUK2");
    DTSDestination("MSISDN") = DTSSource("MSISDN");
    DTSDestination("Fax") = DTSSource("Fax");
    DTSDestination("Data") = DTSSource("Data");
    DTSDestination("Barring") = DTSSource("Barring");
    DTSDestination("MailFormID")  = DTSGlobalVariables("MailFromID").Value;
    DTSDestination("ReceiveDate") = new Date().getYear() + "-" + new Date().getMonth() + "-" + new Date().getDate();
    return(DTSTransformStat_OK);
其中,MailFromID为全局变量,添加方法为包 菜单 属性里面选择全局变量,可在C#中对其进行赋值:

foreach(GlobalVariable global in package.GlobalVariables)
{
    if (global.Name == "MailFromID") {
        package.GlobalVariables.Remove(global.Name);
    }
}
package.GlobalVariables.AddGlobalVariable("MailFromID",MailFromID);

插入时间:
DTSDestination("ReceiveDate") = new Date().getYear() + "-" + new Date().getMonth() + "-" + new Date().getDate();
用javascript拼出来的 哈哈

插入数据时需要从Sql中查询数据再插入:
在包里添加新的任务:
执行Sql任务
SELECT AddressList.*
FROM AddressList
WHERE (ID = ?)
然后配置 输入和输出参数

还剩下第2条没搞定,希望这2天能搞定~

http://calmzeal.cnblogs.com/archive/2006/05/28/411499.html

转载于:https://www.cnblogs.com/wubin264/archive/2008/12/19/1357940.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/276721.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html select选择事件_一道搜狗面试题:IO多路复用中select、poll、epoll之间的区别...

(1)select>时间复杂度O(n)它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们…

【MySQL】redo log --- 刷入磁盘过程

1、redo log基本概念 redo log的相关概念这里就不再过多阐述,网上有非常多的好的资料,可以看下缥缈大神的文章:https://www.cnblogs.com/cuisi/p/6525077.html,个人感觉介绍的非常详细。 2、数据更改过程简述 MySQL 在更新数据的时…

WPF DataGrid根据内容设置行颜色

转: https://code.4noobz.net/wpf-change-color-of-a-row-in-a-datagrid-depending-on-the-value/ 转载于:https://www.cnblogs.com/Mindy-hym/p/11475024.html

QQ web api

QQ的很多功能和信息可以通过web方式获得~以下链接,星号应换成你要查询的QQ号一、Activities Previewhttp://labs.qq.com/ie8/preview/?uin******二、QQ空间访问次数查询(需权限)http://g.qzone.qq.com/fcg-bin/cgi_emotion_list.…

delphi tclientsocket接收不到返回数据_RS—485中教你主站发送报文结构、从站返回报文结构?系列11...

作者:马乐1.主站发送报文结构大家可以看到我之前写的文章中的程序都是没有什么具体功能的,都是两个站点之间互相传递数据,这些数据我们只是看看是否可以正常接收发送,数据本身是没有任何含义的。很明显在实际使用过程中我们是不会…

MybatisPlus 通用枚举无法正确取值

正常使用mybatisplus <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.0.4</version></dependency> 使用后发现项目中原先对枚举值的转换存在异常&#xff1a; ER…

零基础学习 Python 之条件语句

写在之前 我们写程序&#xff0c;就好比学生时代写作文一样&#xff0c;由 “字” 到 “词” 到 “句” 最后到 “文章” 。此前我们学会了一些词语&#xff08;对象类型&#xff09;&#xff0c;我们接下来就是学如何造句&#xff0c;而在编程语言里&#xff0c;句子被叫做语句…

python input 文件名_Python播放音频与录音

这一讲主要介绍些音频基本处理方式&#xff0c;为接下来的语音识别打基础。三种播放音频的方式使用 python 播放音频有以下几种方式&#xff1a;os.system()os.system(file) 调用系统应用来打开文件&#xff0c;file 可为图片或者音频文件。缺点&#xff1a;要打开具体的应用&a…

jQuery选择器和方法的等价关系

层级选择器 1、ancestor descendant &#xff08;后代选择器&#xff09; 在给定的祖先元素下匹配所有的后代元素 $(“form input”) $(.div span)选取<div>里的所有的<span>元素 2、parent child &#xff08;子选择器&#xff09;在给定的父元素下匹配所有…

ActionScript 3.0 Step By Step系列(四):来自面向对象开发之前的呐喊:“学会写可重用的代码”...

增强代码的可重用能力&#xff0c;从创建可重用的代码开始&#xff0c;可重用的代码则是通过从现有代码中重构加以封装,使其成为功能单一的可复用代码块。这句话笼统点说便是“封装”或“抽象”。 在实际的编程开发中&#xff0c;要实现代码重用&#xff0c;而不是每次都去Copy…

express利用nodemailer发送邮件(163邮箱)

Nodemailer 是一个简单易用的Node.js邮件发送组件 首先安装这个组件 npm install nodemailer --save安装之后&#xff0c;可以在某个get请求下&#xff0c;发送邮件&#xff0c;具体路由代码&#xff1a; const express require("express"); const nodemailer requ…

使用 Solid 私有化存储 IPFS 文件哈希值

背景 星际文件系统 IPFS&#xff08;InterPlanetary File System&#xff09;是一个面向全球的、点对点的分布式文件系统&#xff0c;目标是为了补充&#xff08;甚至是取代&#xff09;目前统治互联网的超文本传输协议&#xff08;HTTP&#xff09;&#xff0c;将所有具有相同…

使用window.postMessage实现跨域通信

JavaScript由于同源策略的限制,跨域通信一直是棘手的问题。当然解决方案也有很多&#xff1a; document.domainiframe的设置&#xff0c;应用于主域相同而子域不同&#xff1b;利用iframe和location.hash&#xff0c;数据直接暴露在了url中&#xff0c;数据容量和类型都有限Fla…

appium启动app失败_Appium-Desktop Capability 配置及启动App演示

Appium-Desktop Capability配置介绍desired capability的功能是配置Appium会话。为什么要配置capability&#xff0c;目的就是为了告诉Appium服务器您想要自动化的平台和应用程序。Desired Capabilities是一组设置的键值对的集合&#xff0c;其中键对应设置的名称&#xff0c;而…

WinRAR 命令行简体中文说明

从命令行也可以运行 WinRAR 命令&#xff0c;常规的命令行语法描述如下:WinRAR - -命令 要 WinRAR 运行的字符组合代表功能。开关 切换操作指定类型&#xff0c;压缩强度&#xff0c;压缩文件类型&#xff0c;等等的定义。压缩文件 要处理的压缩文件名。文件 要处理的文件名。列…

以Windows服务方式运行.NET Core程序

原文:以Windows服务方式运行.NET Core程序在之前一篇博客《以Windows服务方式运行ASP.NET Core程序》中我讲述了如何把ASP.NET Core程序作为Windows服务运行的方法&#xff0c;而今&#xff0c;我们又遇到了新的问题&#xff0c;那就是&#xff1a;我们的控制台程序&#xff0c…

SparkSession.read().csv()无法定位本地文件的问题

原因是spark有两个文件头 [file://]代表本地 [hdfs://]代表hdfs路径 如果路径没有文件头&#xff0c;spark会将该路径默认添加上"hdfs://" 所以如果要访问本地csv文件&#xff0c;需要确保路径前面有"file://" //java代码&#xff0c;告诉spark这是本地文件…

JavaScript的10种跨域共享的方法

在客户端编程语言中&#xff0c;如javascript和ActionScript&#xff0c;同源策略是一个很重要的安全理念&#xff0c;它在保证数据的安全性方面有着重要的意义。同源策略规定跨域之间的脚本是隔离的&#xff0c;一个域的脚本不能访问和操作另外一个域的绝大部分属性和方法。那…

好用的shell工具_精选5个酷毙的Python工具

来自&#xff1a;Python之禅工欲善其事必先利其器&#xff0c;一个好的工具能让起到事半功倍的效果&#xff0c;Python社区提供了足够多的优秀工具来帮助开发者更方便的实现某些想法&#xff0c;下面这几个工具给我的工作也带来了很多便利&#xff0c;推荐给追求美好事物的你。…

承载辉煌历史 畅想无线未来

看了JustDI的文章“手机也能当电脑用&#xff1f;&#xff0d;&#xff0d;谈谈未来智能手机操作系统的走向”&#xff0c;作为嵌入式爱好者&#xff0c;我也想谈谈自己的看法。首先&#xff0c;从网络发展的角度看&#xff0c;移动互联网的宽带化&#xff0c;宽带互联网的移动…